brauch mal dringend hilfe bei einer sprungroutine 2d
Übersicht

googlehupfBetreff: brauch mal dringend hilfe bei einer sprungroutine 2d |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Da ich in meiner neuen wohnung noch kein internet hab und heut abend mein bb neu installen muss.....und viel langeweile hab, wollt ich mich an ein kleines jump and run setzen...
hab sowas schonmal angefangen, weiß aber noch daß ich bei der jumproutine ein problem hatte, was ich zwar löste, aber zum geier wo der quellcode ist. bevor ich also heut nacht komplett verzweifle....ich muss eine jumproutine fertigstellen, bei der auf knopfdruck der player halt springt, aber wiederholtes drücken derselben taste nicht zum wiederholten sprung führt(das ist kein problem), problem damals war glaub ich einfach das umsetzen des ganzen ohne spezielle befehle zu nutzen. also es geht schlicht und einfach um den algo für die berechnung von y beim sprung bis zu einem gewissen wert und dem darauffolgenden zurückfallen auf den boden.kollision etc. löse ich selbst. zu beachten wäre vielleicht noch wenn man aus dem laufen heraus springt bzw während des sprunges sich bewegt,dreht links rechts etc. so ich kann dann später nochmal rein schauen hier, weil ich nur kurz zu besuch bin und das inet nutzen kann. will nich nach code schnorren oder so, aber bevor ich die ganze nacht jetzt mit dem bisschen code zu tun habe.... wer mir helfen möchte, kann dies gerne tun. |
||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du brauchst eine Floatvariable der Du bei Tastendruck (oder was auch immer halt) und sofern die Variable 0 ist einen negativen Wert zuweist. Den Wert stellst Du so ein das das Männicken so hoch springt wie Du es haben willst. Solange der Spieler jetzt springt, bzw. er nicht wieder gelandet ist oder die maximale Fallgeschwindigkeit erreicht ist addierst Du einen Wert Deiner Wahl zu der Variable (je größer der Wert, desto schneller wird der Sprung "abgebaut", bzw. größer ist die Beschleunigung beim fallen). Jetzt gilt es nur noch besagte Variable der y-Koordinate des Spielers zu addieren und schon springt das Kerlchen munter durch die Gegend ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
googlehupf |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
danke dir schonmal, werd das heut abend am heimischen pc in code umsetzen, danke dir | ||
![]() |
Jamagin |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du kannst das auch mit einer Data Zeile erledigen.
zB. wo du einfach die Schrittweite dann eben von der y-position des Spielers abziehst bzw. addierst. Code: [AUSKLAPPEN] Restore sprung for j=1 to 13 read tmpy drawimage spieler, player\x, player\y + tmpy, player\animframe next .sprung Data -10, -7, -5, -3, -2, -1, 0, 1, 2, 3, 5, 7, 10 Das ist nur ein Beispiel, man kann es auch anders machen! lg. Jamagin |
||
Bevor du etwas neues beginnst, erledige das alte |
![]() |
Mr.Keks |
![]() Antworten mit Zitat ![]() |
---|---|---|
... Würde aber massiv von der Data-Zeile abraten. Funktioniert zum Beispiel schon nicht mehr, sobald du Höhenunterschiede im Untergrund hast. | ||
MrKeks.net |
![]() |
Goodjee |
![]() Antworten mit Zitat ![]() |
---|---|---|
sollte man auch...wenn man zum beispiel noch auf kollisionen mit der decke reagieren will
wie schon gesagt: man nehme eine floatvariable geschwindigkeit die setzt man auf einen negativen wert man verändert jeden frame die ykoordinate um die geschwindigkeit und erhöhrt die geschwindigkeit sobald eine kollision oben oder unten auftritt wird die geschwinditkeit wieder auf null gesetzt -> charakter steht auf dem boden oder beginnt runter zu fallen nachdem er sich den kopf gestoßen hat |
||
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/ |
![]() |
Jamagin |
![]() Antworten mit Zitat ![]() |
---|---|---|
@MirKeks
Wieso? Was ist daran so falsch?? Man kann ja innerhalb der Schleife sowieso auf was weiß ich für Kollisionen zusätzlich testen und die Sprungroutine mit Exit verlassen! Es war ja nur ein Beispiel. Mit Sicherheit nicht das beste aber immerhin! Natürlich gehts auch mit ner Floatvariable, zusätzlich eine Gravitationsvariable und so weiter, damit das ganze ein wenig realistisch aussieht. Wie gesagt, es war nur ein einfaches Beispiel unter anderem war von Höhenunterschieden ja keine Rede... lg. Jamagin |
||
Bevor du etwas neues beginnst, erledige das alte |
![]() |
Goodjee |
![]() Antworten mit Zitat ![]() |
---|---|---|
ne seperate forschleife ist aber in jedem fall blödsinn...
um die rauszuhauen brauchte man dann auch noch ne variable wo man grade ist und das man grade springt und dann wird es viel komplizierter als mit einer variable geschwindigkeit |
||
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/ |
![]() |
Mr.Keks |
![]() Antworten mit Zitat ![]() |
---|---|---|
@jamagin: folgendes ist einfach 10000 mal eleganter, flexibler und handlicher als eine sperrige for-schleife mit statisch vorgefertigtem data. verschiedene sprungstärken, veränderbare gravitation, höhenunterschiede, fall-schaden, kollision, das entsteht alles quasi von selbst! und es ist auch noch halbwegs nah an dem physikalischen hintergrund. Code: [AUSKLAPPEN] p\ontheground = ...irgendwie ermitteln - hängt vom spielfeld ab
if p\ontheground p\yspeed = 0 if keyhit(jump) then p\yspeed = -p\jumpstrength p\y = groundheight(p\x,p\y) + p\height else p\yspeed = p\yspeed + GRAVITATION p\y = p\y + p\yspeed endif |
||
MrKeks.net |
![]() |
Jamagin |
![]() Antworten mit Zitat ![]() |
---|---|---|
Aha, man lernt nie aus! Toll.
lg. Jamagin |
||
Bevor du etwas neues beginnst, erledige das alte |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group