Springen
Übersicht
BlitzBasic
Allgemein
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
BlitzBasic
Allgemein
Powered by phpBB © 2001 - 2006, phpBB Group
