Gamestudio Links
Zorro Links
Newest Posts
Data from CSV not parsed correctly
by dr_panther. 05/06/24 18:50
Help with plotting multiple ZigZag
by degenerate_762. 04/30/24 23:23
M1 Oversampling
by 11honza11. 04/30/24 08:16
AUM Magazine
Latest Screens
The Bible Game
A psychological thriller game
SHADOW (2014)
DEAD TASTE
Who's Online Now
0 registered members (), 947 guests, and 5 spiders.
Key: Admin, Global Mod, Mod
Newest Members
firatv, wandaluciaia, Mega_Rod, EternallyCurious, howardR
19050 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Steuerung von Player #170409
12/01/07 08:42
12/01/07 08:42
Joined: Dec 2006
Posts: 46
Germany
F
Flo Offline OP
Newbie
Flo  Offline OP
Newbie
F

Joined: Dec 2006
Posts: 46
Germany
Hallo Leute,
ich hab momentan ein kleines Problem:
Ich hab mir ein kleines Skript zur Steuerung des Player programmiert.
Jedoch kann er nicht springen. Des weiteren ignoriert er alle Erhebungen.
Also wenn er ne Rampe hochgehen soll läuft er im Block herum...

Außerdem fällt er nirgendwo herunter , z.B. von einer Plattform...
Code:

action player_init()
{
player = me;
while(my != null)
{
update_views();
//////////////////Player geht vorwärts////////////////////////
if(key_cuu==on)
{
if(key_cuu==on && key_s==on)
{
move_forward += 12*time;
c_move(me,vector(16*time,0,0),nullvector,GLIDE);
ent_animate(me,"run",move_forward,anm_cycle);
}
else
{
move_forward += 7*time;
c_move(me,vector(10*time,0,0),nullvector,GLIDE);
ent_animate(me,"run",move_forward,anm_cycle);
}

}
//////////////////////////////////////////////////////////////

//////////////////Player dreht sich nach rechts///////////////
if(key_cul==on)
{
my.pan += 1;
cam_angle += 1;
}
//////////////////////////////////////////////////////////////

//////////////////Player dreht sich nach Links////////////////
if(key_cur==on)
{
my.pan -= 1;
cam_angle -= 1;
}
//////////////////////////////////////////////////////////////

//////////////////Player gehts rückwärts//////////////////////
if(key_cud==on)
{
move_backward += 3*time;
c_move(me,vector(10*time,0,0),nullvector,GLIDE);
ent_animate(me,"run",move_backward,anm_cycle);
}
//////////////////////////////////////////////////////////////

//////////////Player-Attacke//////////////////////////////////
if(key_w==on)
{
while(attack_mode<100)
{
attack_mode += 6*time;
ent_animate(me,"attack",attack_mode,anm_cycle);
wait(1);
}
attack_mode=0;
}
//////////////////////////////////////////////////////////////

/////////////////Player springt///////////////////////////////
if(key_space==on)
{
temp = my.z;
while(stand_mode<100)
{
if(stand_mode<40)
{
my.z += 6*time;
}
else{my.z = temp;}
stand_mode += 8*time;
ent_animate(me,"jump",stand_mode,anm_cycle);
wait(1);
}
stand_mode = 0;
}
//////////////////////////////////////////////////////////////

///////////////Keine Taste ist gedrückt///////////////////////
if(key_any==off)
{
ent_blend("stand",stand_mode,100);
stand_mode += 3*time;
ent_animate(me,"stand",stand_mode,anm_cycle);
}
//////////////////////////////////////////////////////////////
my.anim_perc += 10*time;
wait(1);
}
}



Wäre schön, wenn mr jemand helfen könnte
Gruß
Flo

Re: Steuerung von Player [Re: Flo] #170410
12/01/07 23:19
12/01/07 23:19
Joined: Jan 2007
Posts: 24
A
ack Offline
Newbie
ack  Offline
Newbie
A

Joined: Jan 2007
Posts: 24
Ich habe ein ähnliches Problem und kann dir leider nicht helfen, nur beistehen. Die meisten Programme in den AUM´s können nur Stufen hinaufgehen, bleiben dann aber oben. Es geht irgendwie mit dem C-trace aber wie ist mir noch nicht klar.

Liebe Grüße
Gerhard

Re: Steuerung von Player [Re: ack] #170411
12/02/07 10:18
12/02/07 10:18
Joined: Jul 2006
Posts: 73
Saxony, Germany
F
Flori Offline
Junior Member
Flori  Offline
Junior Member
F

Joined: Jul 2006
Posts: 73
Saxony, Germany
Das mit dem hochlaufen ist einfach:

.......
vec_set (temp.x, my.x);
temp.z -= 5000;
distance_to_ground = c_trace (my.x, temp.x, ignore_me | use_box);
.......
movement_speed.y = 0;
movement_speed.z = - (distance_to_ground - 17);
movement_speed.z = max (-35 * time, movement_speed.z);
c_move (my, movement_speed.x, nullvector, glide&&ignore_passable);
.......

Das Springen bekomme ich leider selber noch nicht so richtig hin.

Re: Steuerung von Player [Re: Flori] #170412
12/02/07 16:07
12/02/07 16:07
Joined: Dec 2006
Posts: 46
Germany
F
Flo Offline OP
Newbie
Flo  Offline OP
Newbie
F

Joined: Dec 2006
Posts: 46
Germany
Hallo Flori,

danke schon mal für deine Hilfe, doch das Problem ist weiterhin noch nicht richtig behoben:
Sobald der Spieler wieder heruntergehen soll, bleibt er wie gewohnt of der Höhe stehen...

Gruß
Flo

Re: Steuerung von Player [Re: Flo] #170413
12/02/07 18:25
12/02/07 18:25
Joined: Jul 2006
Posts: 73
Saxony, Germany
F
Flori Offline
Junior Member
Flori  Offline
Junior Member
F

Joined: Jul 2006
Posts: 73
Saxony, Germany
Also bei mir funktioniert es.
Schau mal deinen Script durch das da kein Widerspruch ist.

Hier mal mein gesamter Player-Script:
action player
{
my.push = 2;
var anim_percentage;
var movement_speed;
var distance_to_ground;
player = my;
while (1)
{
my.pan += 5 * (key_cul - key_cur) * time;
vec_set (temp.x, my.x);
temp.z -= 5000;
distance_to_ground = c_trace (my.x, temp.x, ignore_me | use_box);
if(key_cud==on)
{
movement_speed.x=-18*(key_cud)*time;
}
else
{
movement_speed.x=18*(key_cuu)*time;
}
movement_speed.y = 0;
movement_speed.z = - (distance_to_ground - 17);
movement_speed.z = max (-35 * time, movement_speed.z);
c_move (my, movement_speed.x, nullvector, glide&&ignore_passable);
if ((key_cud == off) && (key_cuu == off))
{
ent_animate(my, "stand", anim_percentage, anm_cycle);
}
else
{
ent_animate(my, "walk", anim_percentage, anm_cycle);
}

anim_percentage += 13 * time;
wait (1);
}
}

Last edited by Flori; 12/02/07 18:26.
Re: Steuerung von Player [Re: Flori] #170414
12/02/07 22:27
12/02/07 22:27
Joined: Oct 2004
Posts: 262
Augsburg,Bayern
A
ARAS Offline
Member
ARAS  Offline
Member
A

Joined: Oct 2004
Posts: 262
Augsburg,Bayern
Hi,

ich habe Dir einmal eine gravity und eine einfache jump Funktion geschrieben.
Ich habe nicht viel kommentiert. Sollte etwas unklar sein melde Dich noch einmal.
Es kann sein das Du die c_scan Funktion in der Höhe an Deinen Player anpassen
musst. Sollte er nicht ganz auf dem Boden sein oder im Boden stecken.
Ich habe auch alle Definitionen angegeben eventuell musst Du andere Skills angeben. Ich habe Dein player Skript bis auf ein paar kleine Veränderungen
so gelassen.
Hier einmal das Skript:

Code:
 
define anim_perc,skill21;
define jumping,skill22;
define force_x,skill23;
define force_y,skill24;
define force_z,skill25;
define velocity_x,skill26;
define velocity_y,skill27;
define velocity_z,skill28;
define rel_speed_x,skill30;
define rel_speed_y,skill31;
define rel_speed_z,skill32;
define abs_speed_x,skill33;
define abs_speed_y,skill34;
define abs_speed_z,skill35;
define gravity,skill36;

var friction = 0.7; // Reibung
var set_walk;

function handle_gravity()
{
result = c_trace(vector(my.x,my.y,my.z-15),vector(my.x,my.y,my.z - 1000),use_box | ignore_me | ignore_passable);
if (result > 10) // Abstand grösser als 10 Quants
{
my.force_z -= my.gravity * time_step;
if(result > 100)
{
my.jumping = 2;
}
}
else
{
if(my.jumping != 0 && result < 0) {my.jumping = 0;}
if(my.jumping == 0) // Kein jumping
{
my.force_z = -0.1 * result;
if(key_space == 1)
{
while (key_space == 1){wait (1);} // Solange Taste gedrückt ist kein jumping
my.jumping = 1;
my.force_z = 25; // Sprunghöhe
}
}
if(my.jumping == 2)
{
my.force_z = -0.1 * result;
if(my.jumping == 2 && result <= 0){my.jumping = 0;}
}
}
if(result >= 0 && result <= 10 && my.jumping == 2)
{
my.z -= (result); my.velocity_z = 0; my.force_z = 0;
}
my.velocity_z = time_step * my.force_z + max(1-time_step * friction,0) * my.velocity_z;
my.abs_speed_z = my.velocity_z * time_step; // Absolute Bewegung nach unten
}

action player_init()
{
my.narrow = on;
my.gravity = 6; // Anziehungskraft nach unten
player = me;
while(my != null)
{

update_views();
if(key_s == on)
{
set_walk = 16;
}
else
{
set_walk = 10;
}
my.rel_speed_x = set_walk * (key_cuu - key_cud) * time_step;
//////////////////Player geht vorwärts////////////////////////
if(key_cuu==on)
{
if(key_cuu==on && key_s==on)
{
move_forward += 12*time;
//my.force_x += 16 * time_step;
//c_move(me,vector(16*time,0,0),nullvector,GLIDE);
ent_animate(me,"run",move_forward,anm_cycle);
}
else
{
move_forward += 7*time;
//my.force_x += 10 * time_step;
//c_move(me,vector(10*time,0,0),nullvector,GLIDE);
ent_animate(me,"run",move_forward,anm_cycle);
}

}
//////////////////////////////////////////////////////////////

//////////////////Player dreht sich nach rechts///////////////
if(key_cul==on)
{
my.pan += 10 * time_step;
cam_angle += 10 * time_step;
}
//////////////////////////////////////////////////////////////

//////////////////Player dreht sich nach Links////////////////
if(key_cur==on)
{
my.pan -= 10 * time_step;
cam_angle -= 10 * time_step;
}
//////////////////////////////////////////////////////////////

//////////////////Player gehts rückwärts//////////////////////
if(key_cud==on)
{
move_backward += 3*time;
//my.force_x -= 10 * time_step;
//c_move(me,vector(10*time,0,0),nullvector,GLIDE);
ent_animate(me,"run",move_backward,anm_cycle);
}
//////////////////////////////////////////////////////////////

//////////////Player-Attacke//////////////////////////////////
if(key_w==on)
{
while(attack_mode<100)
{
attack_mode += 6*time;
ent_animate(me,"attack",attack_mode,anm_cycle);
wait(1);
}
attack_mode=0;
}
//////////////////////////////////////////////////////////////

///////////////Keine Taste ist gedrückt///////////////////////
if(key_any==off)
{
ent_blend("stand",stand_mode,100);
stand_mode += 3*time;
ent_animate(me,"stand",stand_mode,anm_cycle);
}
//////////////////////////////////////////////////////////////
my.anim_perc += 10*time;
vec_set(my.abs_speed_x,nullvector);
handle_gravity();
c_move(me,my.rel_speed_x,my.abs_speed_x,glide | use_box | ignore_me);
wait(1);
}
}



Ich hoffe Du kommst damit klar.

Re: Steuerung von Player [Re: ARAS] #170415
12/06/07 20:03
12/06/07 20:03
Joined: Nov 2007
Posts: 60
D
darci Offline
Junior Member
darci  Offline
Junior Member
D

Joined: Nov 2007
Posts: 60
ich hab ein ziemlich komisches problem

also bei mir erkennt er temp garnicht, da kommt immer eine undeclared identifiler meldung

weis einer woran das hängen kann?

Last edited by darci; 12/06/07 20:04.

Moderated by  HeelX, Lukas, rayp, Rei_Ayanami, Superku, Tobias, TWO, VeT 

Gamestudio download | chip programmers | Zorro platform | shop | Data Protection Policy

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) opgroup.de

Powered by UBB.threads™ PHP Forum Software 7.7.1