Springen
Übersicht

LeonbBetreff: Springen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi!
Ich habe nun ein kleines 2D Spiel gecodet, wo man nach links und nach rechts laufen kann. Nun: Wie bekomme ich mein Mänchen in die Luft? Wie bekomme ich es zum Springen? Hab alles Möglich mit Hoehe=Hoehe+1 If Hoehe>XXX Then Hoehe=XXX und so...... aber hat alles nicht gefunzt! Bin bei einer Auflösung von 800x600 und latsche auf der Höhe 450 (im Hintergrund ist das der Boden ) ![]() nach Links und rechts klappts so: Code: [AUSKLAPPEN] If KeyDown(rechts) ;rechts laufen
I=I+1 ;Frame a=a+3+Speed ;Laufen If a>806 Then a=1 If I>1 Then I=0 If I<1 Then I=0 DrawImage Smilie,a,450,I Wer kann mir helfen? |
||
meine HP:
http://www.scz.de.ms |
![]() |
Rakete |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wo ist das Problem?
Code: [AUSKLAPPEN] if keydown(oben) then
if sprungkraft < 30 then y = y - 3 drawimage spieler x,y sprungkraft = sprungkraft + 1 endif endif Rakete |
||
![]() |
Spikespine |
![]() Antworten mit Zitat ![]() |
---|---|---|
hmmm... ich machs immer so ähnlich:
Code: [AUSKLAPPEN] Graphics 800,600,0,2
boden = 500 : playery# = boden schwerkraft# = 0.1 sprungkraft = 5 speed = 2 SetBuffer BackBuffer() Repeat Cls If KeyDown(203) Then playerx = playerx - speed EndIf If KeyDown(205) Then playerx = playerx + speed EndIf If KeyHit(200) Then sprung = 1 playeryspeed# = playeryspeed - sprungkraft EndIf If sprung = 1 Then playeryspeed# = playeryspeed + schwerkraft playery# = playery + playeryspeed If playery > boden Then sprung = 0 playery = boden playeryspeed = 0 EndIf EndIf Oval playerx,playery,10,10,1 Flip Until KeyHit(1) |
||
Leonb |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke Spikespine!
Ich habs gerade so noch geschafft, deine Version in eine Version mit einer Animation umzuwandeln ![]() Könntest du mir das nochmal erklären? Wie das mit dem Fallen so klappt |
||
meine HP:
http://www.scz.de.ms |
![]() |
Spikespine |
![]() Antworten mit Zitat ![]() |
---|---|---|
Naja also du hast gewöhnlich für den Spieler zwei Variablen, die die Position speichern: Die X-Position und die Y-Position. Hier habe ich sie PlayerX und PlayerY# genannt. Da es für dieses Beispiel bei den waagrechten Bewegungen nur eine Geschwindigkeit (hier 2 Pixel pro Schleifendurchlauf) gab, teste ich einfach die Pfeiltasten links und rechts und Werte diese dann auf PlayerX aus (If Keydown(203) Then PlayerX = PlayerX - Speed; wobei Speed den Wert zwei hat).
Weil sich beim Sprung die vertikale Geschwindigkeit immer ändert, nehm ich eine extra Variable (hier: PlayerYSpeed#), die die aktuelle nach oben gerichtete Geschwindigkeit speichert. Wenn die nach-oben-Taste gedrückt wird, setze ich die Variable Sprung auf 1 (If Keyhit(200) Then Sprung = True). Außerdem wird die vertikale Geschwindigkeit auf einen negativen Wert eingestellt, und zwar der Sprungkraft. (Je höher die Sprungkraft desto höher der Sprung, ist wohl logisch ![]() Naja, das wars eigentlich auch schon. Wenn du von diesem Wirrwarr da oben kein Wort verstanden haben solltest, habe ich volles verständnis ![]() Bei eventuellen Fragen musst du einfach den Mund aufmachen. Grüße, Spike |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group