bodencollisionsberechnung
Übersicht

Peak7810Betreff: bodencollisionsberechnung |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
wie kann man eine bodenkollision und die darauf folgende reaktion von hand berechnen.
also wenn man beispielsweise das ergebnis einer spieler level kollision hat, also true, was dann passieren soll. theoretisch wird bei bodenkollision ja einfach der y wert der position minimal angehoben, ansonsten aufgrund schwerkraft immer gesenkt. gleichzeitig soll aber eine sprungroutine möglich sein. also if player_bodencollision true then y+1 else y-1 so in der art, nur das eben auch noch ein sprung möglich ist, was nicht so einfach ist, da man ja die schwerkraft beachten muss, was ja der fallgeschwindigkeit entspricht und im schlimmsten fall aufgrund der kollision zu einem ruckeln führen könnte. hab mir das jetzt mal nur so theoretisch überlegt, gibts da eine manuelle möglichkeit? also ohne den stop parameter nutzen zu müssen. |
||
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] player_y=player_y-fallgeschw
fallgeschw=fallgeschw+1 if bodenkollision player_y=Boden_y endif Hier Einzeichnen Auf diese Weise kann es nicht ruckeln, da der player beim einzeichnen einfach nur die boden_y als player_y bekommt. Schwerkraft kannst du durch eine sich ständig erhöhende fallgeschwindigkeit simulieren Zum hüpfen: Code: [AUSKLAPPEN] player_y=player_y-fallgeschw
fallgeschw=fallgeschw+1 if bodenkollision player_y=Boden_y if huepfen fallgeschw=-5 endif endif Hier Einzeichnen Wenn man auf dem boden steht und huepfen ausgelöst wird... zb durch einen tasten druck, wird die Fallgeschwindigkeit negativ also geht in die andere richtung. |
||
Peak7810 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
woher soll man aber bei verschiedenen objekten im level die boden_y haben.
wie soll man dies herausfinden. stell dir vor ich hüpfe von box zu box, da ist boden_y ja was anderes als der rand der box. Kannst du mal schauen? hatte es bisher so gelöst. Code: [AUSKLAPPEN] IF Kollision mit Boden
updown = 0.01 Kollision = 0 (also auf null setzen) IF KEY(57) THEN updown=0.5 ELSE updown=updown-0.02 ENDIF funktioniert, ruckelt aber eben ein wenig. was müsste ich daran ändern? achja und zum bewegen auf der y achse wird dann updown verwendet. [bzw] wie wird der stop und sliding parameter den intern eigentlich gehandhabt.vorallem stop würde mich interessieren. |
||
Peak7810 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
keiner noch eine idee? | ||
Grasmann |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
nimm die y koordinaten direkt vom, mit dem player kollidierten, objekt
ungefähr so: Code: [AUSKLAPPEN] EntityY(CollisionEntity(Player,1*))
ich denk das müsste gehen *1 oder 0 ... weis nimmer genau |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group