Sprung
Übersicht BlitzBasic Beginners-Corner
Last-Action-HeroBetreff: Sprung |
Sa, Sep 25, 2004 18:44 Antworten mit Zitat |
|
---|---|---|
Hi Leute ich brauch mal Hilfe
Ich kenn mich zwar relativ gut aus aber der Sprung war schon immer mein Problem Also ich mach gerade ein Jump'n'Run-Spiel aus der Seitenansicht Ich hab jetzt auch schon eine animierte Figur die nach rechts und links laufen kann das ist alles kein Problem Dann hab ich mehrere ebenen von auf/von denen mans springen kann aus einzelnen images also zb das das dann so etwa aussieht : _______________ _____________ ____________ ________________ ___________ ___________________________________________________ so zum beispiel (wie gesagt eben aus einzelnen 32*32 images zusammengebaut Ich brauch jetzt also eine Art schwerkraft sodass man eben am Rand runterfallen kann und zwar eben nur bis man auf der darunterliegenden Ebene landet und dann brauch ich für das ganze noch den Sprung also das man eben nach oben fliegt und dann wieder nach unten (bis man wieder wo auftrift) hab das schon einige male selber versucht aber irgendwo is es dann immer gehangen oder man is an einigen stellen durchgefallen also wenn jemand sowas hat dann bitte bitte helft mir danke mfg LAH |
||
BladeRunnerModerator |
Sa, Sep 25, 2004 18:53 Antworten mit Zitat |
|
---|---|---|
Hi
-leg dir eine Variable für die y-Geschwindigkeit fest. Normalerweise liegt sie etwas über 0 (=Schwerkraft). - wenn gesprungen wird, setze sie auf einen negativen Wert. - in jedem Schleifendurchlauf prüfe ob die Geschwindigkeit < eines Maxwertes ist. Wenn ja, erhöhe sie ein wenig (hier kannst du "spielen") - prüfe ob das Tile unter der Spielfigur "durchlässig" ist. wenn ja, erhöhe Spielerposition um die y-Geschwindigkeit. - für den Sprung gilt natürlich eine entgegengesetzte Prüfung. - nach Wunsch kann die letzte x-Geschwindigkeit für den Sprung gefreezed werden. hope it helps. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
Last-Action-Hero |
Sa, Sep 25, 2004 19:04 Antworten mit Zitat |
|
---|---|---|
ja so hab ich mir das im großen und ganzen auch gedacht ^^
ich wills vielleicht mit dem sinus machen denn das wäre für sprung ideal langsam größer dann wieder langsamer bis schlieslich ins minus (also wieder nach unten) aber ich hab keinen plan wie ich das machen soll das man auf dem tile "landet" |
||
Hubsi |
Sa, Sep 25, 2004 20:09 Antworten mit Zitat |
|
---|---|---|
Du meinst das er nicht 'im' Tile steht?
Code: [AUSKLAPPEN] temp%=player_y / 32
Fertisch
player_y=temp% * 32 |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
Jolinah |
Sa, Sep 25, 2004 20:11 Antworten mit Zitat |
|
---|---|---|
Eigentlich brauchst du Sinus dazu nicht, obwohl es ähnlich wie Sinus funktioniert.
Code: [AUSKLAPPEN] y# = 3.0 ;Ein bisschen Kraft die nach unten drückt. Const MAX_Y# = 10.0 ;Maximale Fallgeschwindigkeit Dim level(30,15) ;Die map Repeat ... ;Sprung funktion If keyhit(57) and jump = false jump = true y = -8.0 ;Bewirkt das er nach oben springt ;Allerdings geht es auch immer langsamer gegen oben und der ;spieler fällt dann auch wieder runter da, y = y + 0.2, ;und fällt immer schneller bis er den max speed erreicht. Endif ;Wenn man am Springen bzw. fallen ist Schwerkraft dazu rechnen. If jump = true y = y + 0.2 If y > MAX_Y then y = MAX_Y player_ypos = player_ypos + y ;Spielerposition aktualisieren Endif ;Kollision If y > 0.0 and jump = true ;wenn der Spieler fällt. ;Tile unter dem Player prüfen, col_tile kann irgend ne zahl sein die bei ;dir ein kollidierbares Tile ist. if level(player_xpos / tilesize, player_ypos / tilesize + 1) = col_tile ;Wenn unter dem Player ein kollidierbares Teil ist, setz den Player ;auf die Bodenhöhe des Tiles, schalt den Sprung aus und setze ;schwerkraft zurück player_ypos = (player_ypos / tilesize) * tilesize jump = false y = 3.0 Endif Endif ;Das ähnliche wenn der Spieler steigt, nur muss das Tile über dem Spieler ;geprüft werden. If y < 0.0 and jump = true ... Endif ... Until Keyhit(1) usw... Der Code funktioniert so natürlich nicht, es soll nur zeigen wie man es ungefähr machen könnte. Natürlich muss man dann auch wenn man nicht springt das Teil unter sich prüfen. Wenn da dann Luft unten dran ist, also wenn man runterfallen kann so kann man einfach Jump auf true setzen. Da hier diesmal y nicht auf einen minus Wert gesetzt wird beginnt der Spieler einfach zu fallen und prüft im Fallen wieder ob ein Tile unter dem Player ist. Wenn ja, wird jump dann wieder ausgeschaltet. |
||
Übersicht BlitzBasic Beginners-Corner
Powered by phpBB © 2001 - 2006, phpBB Group