Jump n Run Sprung (Allgemein)
Übersicht
BlitzBasic
Allgemein|
|
ProducerBetreff: Jump n Run Sprung (Allgemein) |
Antworten mit Zitat |
|---|---|---|
|
Also irgendwie habe ich leichte Probleme mit realistischem Sprung Verhalten in Jump n Runs... Bisher habe ich das immer folgendermaßen gelöst (Ist jetzt nur mal schnell geschriebener Pseudocode - gehört zu keinem Projekt oder so):
Code: [AUSKLAPPEN] if KeyHit(SPRUNGTASTE) then sprung=1 endif if sprung=1 then if positionY<MAX_SPRUNGHÖHE positionY=positionY+1 else sprung=2 endif endif if sprung=2 then if positionY>BODENHÖHE positionY=positionY-1 else sprung=0 endif endif Ich hoffe ihr versteht was ich meine Aber so ganz realistisch ist das ja nicht gerade... Wie code ich Sprünge besser? Danke schon mal für jegliche Hilfe |
||
| in this world, all i got is my word and my balls, and i don't break em for nobody | ||
|
|
D2006Administrator |
Antworten mit Zitat |
|---|---|---|
|
Zum Beispiel mit einer Y-Geschwindigkeitsvarieble.
PseudoCode: [AUSKLAPPEN] y = y + y_speed# If y> BODENHOEHE Then y = BODENHOEHE If KeyHit( LEERTASTE ) Then y_speed = y_speed - 5.0 ;oder so, den wert anpassen EndIF y_speed = y_speed + .0 ;Gravitation |
||
|
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2 |
||
beginr |
Antworten mit Zitat |
|
|---|---|---|
|
also ich würds so machen (bin aber nicht ganz sicher)
PseudoCode: [AUSKLAPPEN] n = floor#(sqr#(sprunghoehe*2)); n solltest du so waehlen, dass deine sprunghoehe ;ungefaehr n*(n+1)/2 betraegt
if keyhit(sprungtaste) then spring() endif function spring() for i = 1 to n yposition = yposition + i next ; max. sprunghoehe erreicht delay wartezeit; mit versch. werten experimentieren for i = 1 to n yposition = yposition - i next end function dies müsste den fall- und hochspringvorgang relativ gut simulieren, optimal ist es, wenn deine sprunghoehe wirklich n*(n+1)/2 ist. sorry es muss floor# statt ceil# heissen, hab mich vertan. |
||
- Zuletzt bearbeitet von beginr am Mo, Apr 21, 2008 14:40, insgesamt einmal bearbeitet
|
|
Nibor |
Antworten mit Zitat |
|---|---|---|
|
Du könntest die höhenänderunen in nem Feld speichern:
Code: [AUSKLAPPEN] Dim feld(20)
for A=0 to 30 read feld(A) next data 0,5,4,4,3,3,3,2,2,2,1,1,0,0,0,0,0,0,-1,-1,-2,-2,-2,-3,-3,-3,-4,-4,-5,0 if KeyHit(SPRUNGTASTE) and sprung=0 then sprung=1 endif if sprung>=1 then positionY=positionY+feld(sprung) sprung=sprung+1 endif if sprung>=30 then sprung=0 |
||
| http://www.blitzforum.de/showcase/203/ | ||
|
|
Producer |
Antworten mit Zitat |
|---|---|---|
|
Danke euch allen Funktioniert super! (Habe die Variante mit Feldern genommen) |
||
| in this world, all i got is my word and my balls, and i don't break em for nobody | ||
BIG BUG |
Antworten mit Zitat |
|
|---|---|---|
|
Nix für ungut, aber die von D2006 angedeutete Lösung ist die einzig sinnvolle für ein klassisches Jump&Run-Spiel.
Mit den anderen Krücken wirst Du früher oder später schön Probleme bekommen. Blup. |
||
|
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final) |
||
|
|
DerHase |
Antworten mit Zitat |
|---|---|---|
|
Ich bin mit Big Bug einer Meinung |
||
| Play Satyr! | ||
Übersicht
BlitzBasic
Allgemein
Powered by phpBB © 2001 - 2006, phpBB Group
