|
So wie gehts weiter!
[Re: DerLateinProfi]
#122242
04/09/07 09:14
04/09/07 09:14
|
Joined: Apr 2006
Posts: 160
DerLateinProfi
OP
Member
|
OP
Member
Joined: Apr 2006
Posts: 160
|
Das springen script funktioniert gut, nur hab ich ne Frage dazu, Es muss doch gehen, das der die ganze Animation durchführt wenn man die Leertaste einmal drückt, oder? Wenn ich nämlich jetzt sage dass der 100 hochspringen soll, muss ich die Leertaste gedrückthalten, wieso? Für nen EGO ist das nicht so schön. möchte das so wie bei UT und anderen, wie geht das?
MFG: DerLateinProfi
If there's a god
He's watching
can he give a ray of hope
so much pain and so much sorrow
www.lpp1991.de.vu
|
|
|
Ne das geht nicht!
[Re: RedPhoenix]
#122244
04/09/07 17:29
04/09/07 17:29
|
Joined: Apr 2006
Posts: 160
DerLateinProfi
OP
Member
|
OP
Member
Joined: Apr 2006
Posts: 160
|
Ne es tut mir leid, aber das geht nicht, ich muss immernoch die Leertaste gedrückt halten. Also ich habe als temp mal 150 genommen, und wenn ich im Spiel space drücke, dann geht der nur ganz wenig hoch und wieder runter. Aber wenn ich gedrückt halte geht er 150 hoch und dann wieder runter. Wie kann ich das ändern? Also mit while geht ja nicht, da es sonst ja eine unendlichschleife wäre oder? (bin halt ein C und C++ freak^^) Bitte hilf!
If there's a god
He's watching
can he give a ray of hope
so much pain and so much sorrow
www.lpp1991.de.vu
|
|
|
Hier ist er!
[Re: RedPhoenix]
#122246
04/09/07 17:38
04/09/07 17:38
|
Joined: Apr 2006
Posts: 160
DerLateinProfi
OP
Member
|
OP
Member
Joined: Apr 2006
Posts: 160
|
Code:
//////////////////////Movement/////////////////////////-sv -cl -tcp
var player_speed; var jumping; var space_var;
action player_movement { player = my; while(1) { vec_set(camera.pos,my.pos); camera.z += 70; //Kamera ist 70 über dem Mittelpunkt des Models camera.tilt = max(-30,min(camera.tilt + 10 * mouse_force.y * time,30)); //Lässt den Spieler 20 hoch und runter sehen camera.pan -= 20 * mouse_force.x * time; //Kamera lässt sich mit der Maus drehen my.pan = camera.pan; //Model ist in die Richtung des Blickes gedreht player_speed.x = 10 * (key_w - key_s) * time; //Geschwindigkeit des Players Vor und Zurück player_speed.y = 5 * (key_a - key_d) * time; //Geschwindigkeit des Players zu Seite vec_set (temp,my.x); move_mode = ignore_you + ignore_passable;
if (key_shiftl == 1 && key_w==1) { player_speed.X = 20*key_w*time; //Beim rennen 3mal so schnell }
//////////////////////////////////////////////////////////////////////// //Schwerkraft, Gravitation // //////////////////////////////////////////////////////////////////////// vec_set (temp,my.x); temp.z -= 1000; trace_mode = ignore_me + ignore_passable + ignore_sprites + ignore_models + ignore_passents + use_box + activate_sonar; temp = trace (MY.X,temp);
if (temp > 5) { space_var = 2; player_speed.Z = -5; }
else { jumping = 0; if (temp < 1) { player_speed.Z += 3; } else { player_speed.Z = 0; } } space_var = 0; move_mode = ignore_you + ignore_passable; ////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (key_space == 1) { space_var = 1; } //SPRINGEN VAR
if(space_var == 1 && temp < 150 && jumping == 0) //150 hoch springen //Springen { player_speed.z = 25* time; //Spung Geschwindigkeit }
if (temp >= 150) //Wenn 150 hoch, Gravitation { jumping = 1; space_var = 0; }
if(key_w ==1 || key_s ==1) //Gehen { ent_cycle ("walk",my.skill46); my.skill46 += 10 * time; my.skill46 %= 100; }
if(key_a==1) //nach links Gehen { ent_cycle ("walk",my.skill46); my.skill46 += 10 * time; my.skill46 %= 100; }
if(key_d==1) //nach rechts Gehen { ent_cycle ("walk",my.skill46); my.skill46 += 10 * time; my.skill46 %= 100; }
if(key_w==1 && key_shiftl==1) //Rennen { ent_cycle ("run",my.skill46); my.skill46 += 10 * time; my.skill46 %= 100; }
ent_move (player_speed,nullvector);
wait(1);
} wait(1); } Ich hoffe du kannst mir helfen!
If there's a god
He's watching
can he give a ray of hope
so much pain and so much sorrow
www.lpp1991.de.vu
|
|
|
JO
[Re: RedPhoenix]
#122248
04/09/07 17:48
04/09/07 17:48
|
Joined: Apr 2006
Posts: 160
DerLateinProfi
OP
Member
|
OP
Member
Joined: Apr 2006
Posts: 160
|
JO! Das wars!! DANKE!!! Nun sagtest du was von wegen hindernissen, ich weiß was du meinst, also das man hängenbleibt wenn man gegen etwas springt, kann man das nicht einfach mit einer kleinen Funktion ändern, also
if(Objekt berührt) { Gravitation ]
Oder geht das nicht?
If there's a god
He's watching
can he give a ray of hope
so much pain and so much sorrow
www.lpp1991.de.vu
|
|
|
OK
[Re: RedPhoenix]
#122250
04/09/07 18:03
04/09/07 18:03
|
Joined: Apr 2006
Posts: 160
DerLateinProfi
OP
Member
|
OP
Member
Joined: Apr 2006
Posts: 160
|
Ich versteh das so ungefähr, habe aber ne andere Möglichket!^^ Also wie muss so was gescriptet aussehen?
if(Blockberührung)
??? Mehr brauch ich nicht, denn dann könnte man das in die Jump-Funktion setzen, und wenn das der Fall ist, soll er den Spieler 1 zurück bewegen.
If there's a god
He's watching
can he give a ray of hope
so much pain and so much sorrow
www.lpp1991.de.vu
|
|
|
Re: OK
[Re: DerLateinProfi]
#122251
04/09/07 18:08
04/09/07 18:08
|
Joined: Jan 2007
Posts: 651 Germany
RedPhoenix
User
|
User
Joined: Jan 2007
Posts: 651
Germany
|
Um Blockberührung abzufragen brauchst du entweder die Events (wie gezeigt) oder einen trace (empfehle ich hier nicht). Anders kann die Engine eine Blockberührung nicht erfassen. Das mit dem 1 zurückbewegen löst dein Problem aber nicht, da der Sprung ja weitergeht bis die fragliche Höhe erreicht ist. Der Sprung muss also vorzeitig abgebrochen werden (jumping = 0)
Die Event Function sieht ganz einfach so aus:
FUNCTION player_event { IF (jumping==1 && (Event_type == EVENT_BLOCK || event_type == event_ENTITY)) { jumping = 0; } } Die muss über der Hauptfunction stehen.
Last edited by RedPhoenix; 04/09/07 18:09.
|
|
|
|