Java Figur springen lassen?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Hey! Du brauchst ne Erdanziehungskraft!

Dein Pressed sieht gut aus! Du brauchst da aber noch einen check, ob du in der Luft bist. Ansonsten kannst du ja "unendlichen Doppelsprung" machen - also einfach auf Pfeil oben hämmern und so unendlich hoch springen.

Beim keyReleased machst du erst einmal gar nichts. Ja - ich weiß. Du wirst es so haben wollen, dass wenn man länger auf oben drückt, man weiter springt. Das implementierst du aber genau anders herum: Wenn man aufhört nach oben zu drücken, gehts schneller nach unten. Aber das ist zweitrangig.

velY ist deine Geschwindigkeit. Was du brauchst ist eine Beschleunigung! Nichts anderes ist die Erdanziehungskraft nämlich (und ohne die kannst logisch nicht springen).

Das heißt, in deiner Loop-Methode "actionPerformed" machst folgendes:

Wenn Collision.FigurStehtAufDemBoden {
Wenn velY < 0: velY = 0;
} SONST {
velY = velY - ERDBESCHLEUNIGUNG
}

Und eben das "velY = -3;" im Key-Released erst mal löschen - das sollte dann eine ziemlich pausible Flugbahn ergeben ;).

Grus

Tuxgamer


VinceJosh 
Fragesteller
 09.09.2017, 13:31

Was heißt Collision, sorry weiß noch nicht so viel bin erst 10 aber den Code habe ich geschrieben

0
Tuxgamer2  09.09.2017, 13:36
@VinceJosh

Kollision ;). Sollte nicht Deutsvh und Englisch mischen...

Irgendwann muss deine Spielfigur doch am Boden aufkommen, oder? Also z.B if(y<=0) - wenn du sagst, dass bei y=0 der Boden ist.

0
VinceJosh 
Fragesteller
 09.09.2017, 13:54
@Tuxgamer2

Und wie sieht dan der keyPressed mit der Leertaste also SPACE aus ?

0
Tuxgamer2  09.09.2017, 13:57
@VinceJosh

Wieso setzt denn 

velX = 0;
? Aber ansonsten passt das doch.
0
VinceJosh 
Fragesteller
 09.09.2017, 14:00
@Tuxgamer2

weil er wenn man springt sich nicht bewegen soll

0

Beim Tastendruck erhöhst du immer die y-Koordinate bis zur maximalen Höhe und anschließend wieder mindern.


VinceJosh 
Fragesteller
 09.09.2017, 11:41

und wie mache ich das nicht?

0