Springen
Übersicht

![]() |
rctunerBetreff: Springen |
![]() Antworten mit Zitat ![]() |
---|---|---|
HI,
ich kann jetzt auf meinem Terrain rumlaufen und habe eine Schwerkraft gesetzt. (MoveEntity ... -1) Zum Springen hab ich das genau so gemacht (If KeyDown () MoveEntity ... 5). Nur fliegt man jetzt eher hoch und man kann die ganze Zeit die Taste gedrückt halten und fliegt hoch... Wie mache ich das so wie in anderen gewöhnlichen spielen? Also dass ich die Taste nur einmal betätigen muss und man hochspringt. Und sie erst dann wieder betätigen kann wenn meine Figur wieder auf dem Terrein steht? Bin am verzweifeln, da ich schon Tausende möglichkeiten ausprobiert hab... mfg rctuner |
||
antome!!! gesperrt !!! |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Deine Figur (Camera-Pivot) auf Kollision mit dem Terrain testen.
Solange Tastendruck sperren bis Kollision vorhanden. |
||
antome |
![]() |
rctuner |
![]() Antworten mit Zitat ![]() |
---|---|---|
ja, in meinen Tausend Tests war diese Idee auch mit drinn. Nur hat des leider net richtig funktioniert. Kannst du mir nichtmal ein Bsp. Code geben? | ||
![]() |
Chester |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: ;...... player\speed# = player\speed# + e_kraft# player\y_pos = player\y_pos - player\speed# ;.... if Keyhit(57) then player\speed = 30 ;..... drawimage imgPlayer, player\x_pos, player\y_pos, player\frame ;... Ist zwar aus einem 2D PRojekt, aber das Prinzip ist das selbe. Edit: Code: Const gravity# = -0.5 Graphics3D 800,600,32,2 SetBuffer BackBuffer() Global camera = CreateCamera() PositionEntity camera, 70,50,0 light = CreateLight() Type ball Field x#,y#,z# Field fall# Field kollision# Field gewicht# End Type Local Tball.ball = New ball Tball\gewicht# = 0.5 mesh_ball = CreateSphere(100) PositionEntity mesh_ball,0,10,0 ScaleEntity mesh_ball,5,5,5 EntityColor mesh_ball,0,0,250 EntityType mesh_ball,1 EntityRadius mesh_ball,5 Global feld = Createplane() EntityColor feld,0,150,0 EntityType feld,2 Collisions 1,2,2,2 Repeat Tball\x# = EntityX( mesh_ball ) Tball\y# = EntityY( mesh_ball ) Tball\z# = EntityZ( mesh_ball ) Tball\kollision = EntityCollided(mesh_ball, 2) If Tball\kollision = 0 Then Tball\fall# = Tball\fall# + gravity#*Tball\gewicht# Tball\y# = Tball\y# + Tball\fall# If Keyhit(57) Then Tball\fall = 20 EndIf If Tball\kollision Then Tball\fall# = -Tball\fall#/1.5 EndIf PositionEntity mesh_ball, Tball\x#, Tball\y#, Tball\z# PointEntity camera, mesh_ball UpdateWorld() RenderWorld() Flip Until KeyHit(1) Hier haste eine schnell zusammengecodete 3D-Demo. |
||
![]() |
TheProgrammer |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich würde linepick benutzen, um zu Prüfen, ob der Spieler Boden unter seinen Füßen hat. | ||
aktuelles Projekt: The last day of human being |
gutters |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich würde lieber so machen..
Code: if entitycollided(player,Land_Collision)
If Keyhit(57) then moveentity player,0,4,0 endif Ich habe es probiert. Es klapt bei mir. Wenn er "fliegt" dann er kann auch gehen, aber wenn du auch dieses code benutzt, dann kann er nicht beim fliegen gehen. Code: If EntityCollided(Player,Land_Collision)
If KeyDown(203) Then MoveEntity Player,-.1,0,0 If KeyDown(205) Then MoveEntity Player,.1,0,0 ; Move the player backwards and forwards... If KeyDown(200) Then MoveEntity Player,0,0,.1 If KeyDown(208) Then MoveEntity Player,0,0,-.1 EndIf |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group