C++ Spielfigur hüpfen lassen
-
crazy-smiling schrieb:
hey, erstma bitte keine Beleidigungen, ich bin immer noch gut genug um die Ausbildung zu verkürzen...
hm... ok, das was Roland geschrieben hat hab ich im prinzip schon, und die Kurve werd ich sicha auch hinkriegen, danke
mein momentan größtes Problem ist, dass ich laut meinem Kollegen an der Stelle, an der ich Programmiere (Object.cpp, if(hge->Input_GetKeyState(HGEK_SPACE))...
keine Schleife machen darf. d.h. aber im Moment dass ich auf Space gedrückt halten muss damit meine Spielfigur die ganze Hüpfbewegung macht.dann machst du eine bool-Variable names SpringeGerade oder so, diese setzt du auf true sobald die taste gerdrückt wurde und die if abfrage für die taste sieht dann so aus:
if(hge->Input_GetKeyState(HGEK_SPACE) || SpringeGerade) { SpringeGerade = true; // blabla if(Sprunge Zu ende oder wo es auch immer zu ende ist) { SpringeGerade = false; } }
mfg.
-
In meinen Programmen lass ich eine Eigene Funktion die Tastatureingabe übernehmen, die die Eingabe auf der Tastatur dann natürlich auch auswertet, und dann ein struct zurückgibt, in dem die alle tasten mit Namen wie "jump" und "shoot" gespeichert sind. Wenn dann die variable "jump" auf 1 Steht, und kontakt zum Boden besteht, kann dann die Sprungsequenz eingeleiteitet werden. Selltest du meinen lösung ausprobieren, reicht an dieser stelle ein verändern der y Geschwindigkeit und eventuell eine Sprunganimation (die keine Höhenveränderung enthält) Gestartet werden. Die weiche Sprungkurve wird automatisch dadurch entstehen, dass die Schwerkraft das obrekt bei jedem frame (oder abhängig von der Vergangenen Zeit) ein wenig nach unten Beschleunigt. Ich empfehle wirklich die sache so anzugehen, denn es wird vieles leichter machen, und es sieht besser aus, als so ein Eckiger Sprung.
Edit: Was ich noch vergessen habe zu sagen, ist dass die x- und y- Koordinaten in einem float oder double gespeichert werden sollten, denn sonst werden fast alle Bewegungsinformationen (die sich meist so zwischen 3 und 0 befinden) bei jeder Aktualisierung der Koordinaten weggerundet und es wird wieder unschön.
-
TGGC schrieb:
Siehe Physikbuch, zweite Klasse. Was heut so alles FI wird... f'`8k
Bye, TGGC (\-/ returns)
Ich sag nur: 3 Jahre Ausbildung und ich hatt nicht eine Stunde Mathematik in der Berufsschule
-
TGGC schrieb:
Siehe Physikbuch, zweite Klasse. Was heut so alles FI wird... f'`8k
Bye, TGGC (\-/ returns)
Ich sag nur: 3 Jahre Ausbildung und ich hatt nicht eine Stunde Mathematik in der Berufsschule
-
Hi!
Naund? Was hat das damit zu tuen?
Du hast die Grundlagen in der Schule gelernt. Alles weitere lässt sich durchaus selbst aneignen.
grüße
-
schon blöd dass es in der Ausbildung kein MAthe mehr gibt, aba was solls...
wollt mich nochma schnell für eure Hilfe bedanken, habs hin gekriegt
*freu*
if(hge->Input_GetKeyState(HGEK_SPACE)||sprung==true) { Objectlist[i].spr->SetFrame(9); if(sprung==false) { f_sprung_startpos=Objectlist[i].y; sprung=true; f_y=1; } Objectlist[i].y = Objectlist[i].y-(Objectlist[i].vy * dt)+f_y; f_y+=0.2; if(f_sprung_startpos<=Objectlist[i].y) { sprung=false; Objectlist[i].y=f_sprung_startpos; }
so, vielleicht nich ganz so wie ihr des gemeint hattet, aba läuft un sieht gut aus
also thx!
-
TGGC schrieb:
Siehe Physikbuch, zweite Klasse. Was heut so alles FI wird... f'`8k
Bye, TGGC (\-/ returns)
Aber selbst die Diplomarbeit über A* schreiben
-
Delryn schrieb:
Aber selbst die Diplomarbeit über A* schreiben
A* macht weniger als 5% davon aus. Ich weiss, ist nicht so leicht zu verstehen. f'`8k
AutocogitoGruß, TGGC (\-/ returns)
-
ich habe so etwas auch schon einmal gemacht
und ich habe das springen mit einer wurfparabel dargestellt:y = V * t * sin(w) - 0.5*G*pow(t,2); x = V * cos(w) * t;
V = geschwindigkeit
w = winkel
t = zeit
G = erdanziehungskraft ( 9,8 )du musst nur die zeit erhöhen, und die geschwindigkeit so einstellen, des er nicht zu weit fliegt *g*
mfg
luki
-
Au weier. Das ist absolut der Falsche Ansatz um ein Spiel halbwegs realistisch aussehen zu lassen. man sollte bevor man etwas tut nicht nur darauf Achten, dass es hinterher so in etwa so aussieht, wie im realen leben, Also eine Parabel in der Wirklichkeit entsteht bestimmt nicht deshalb, weil vor dem Wurf jemand eine Parabel ausrechnet, die das Objekt hinterher Abwandert. Eine Parabel entsteht, indem eine Durchgehende Kraft ständig an einem Ojekt zieht, und somit die bewegungsrichtung ändert.
Eine animation eines Bildes in dem ein Objekt sich hoch und wieder Herunter Bewegt ist auch ein Komplett falscher weg einen Realistischen Sprung hinzubekommen.