bewegen im 3d-raum
Übersicht

![]() |
xaeroxBetreff: bewegen im 3d-raum |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo liebe Programmierer,
ich habe ein 3-D Raum erstellt mit einem terrain. Nun habe ich es soweit gebracht, dass die Kamera sich auf dem Boden vom terrain bewegen lässt. Jedoch stören mich drei Dinge: Wenn ich die Erdanziehung mit "TranslateEntity cam, 0, -30, 0" einstelle, dann hab ich das Problem, im unebenen Terrain, die kleinen Huckel zu überlaufen. Also ich will, dass man ohne stocken und ablenkungen über die huckel kommt. Das zweite Problem ist, dass ich die Kamera mit MoveEntity steuer. sobald ich aber mit der Kamera nach oben Blicke und "Vorwärts laufen" drücke, dann fliegt die Kamera natürlich durch die luft. Ich will aber dass die Kamera fest auf dem Boden bleibt und sich nur in die richtung bewegt wo die kamera quasi in richtung x-z- Ebene blickt. Zu guterletzt habe ich versucht einen Sprung zu simulieren, indem ich einfach für den Fall, dass die Sprungtaste betätigt wird, entlang der y-achse springt. Dies habe ich mit "TranslateEntity cam, 0, +200, 0" . die kamera springt zwar, jedoch will ich diesen sprung realistischer darstellen, sprich es soll nicht nur nach oben "Zucken" und dann langsam mit erdanziehungskraft wieder herabfallen, sondern es soll eine sprung beschleunigung vorhanden sein... mache ich das dann mit einer art schleife? "beschleunige solange in die luft bis höhe 500 erreicht ist"? Vielen Danke im vorraus. ps.:ich entschuldige mich für ein paar schlechte ausdrucksweisen sowie rechtschreibschwächen.. |
||
Biker sind wahre Helden.
Auch Musiker. |
![]() |
ZEVS |
![]() Antworten mit Zitat ![]() |
---|---|---|
Poste diesen Link in den zweiten Thread in Folge: https://www.blitzforum.de/foru...hp?t=37981.
Langsam stelle ich mir die Frage, ob man das nicht unter FAQ/Tutorials erklären sollte... ZEVS |
||
![]() |
xaerox |
![]() Antworten mit Zitat ![]() |
---|---|---|
ok ich werde mich da weiter rumwühlen
danke |
||
Biker sind wahre Helden.
Auch Musiker. |
Inso |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hab dir mal mehr oder minder kopiert, wie ichs mach momentan.
Bei mir funktioniert das auf einem Meshterrain ziemlich gut. Wenn ich Berge hoch/runter laufe, alles flüssig. Code: [AUSKLAPPEN] Global lastime#= MilliSecs() Global now# Global deltatime# While (dies und jenes) now = MilliSecs() deltatime = (now-lastime) lastime = now gravity Updateworld(und so weiter) wend function gravity() LinePick(EntityX(player,True),EntityY(player,True),EntityZ(player,True),0,-300,0) If EntityY(player,True)-PickedY()>55 TranslateEntity player,0,-(gravity*deltatime)/4,0 ElseIf EntityY(player,True)-PickedY()>21 And EntityY(player,True)-PickedY()< 55 TranslateEntity player,0,-(gravity*deltatime)/16,0 EndIf end function (Anmerkung: original minib3d code, müsste so wie ichs da stehen hab aber in b3d funktionieren) Beim Springen würde ich auch mit Linepick arbeiten. |
||
KaozZZ |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich weis das hört sich vll blöd an, aber gerade das sind doch solche probleme, die man mit etwas mathematik evtl. auch physik und mit rumprobieren lösen kann. Ich denke, dass gerade soetwas wie ein Sprung sehr subjektiv ist. Jeder findet da etwas anderes "realistisch". Dein zweites problem löst du, indem du einen pivot inder y-achse drehen lässt. Die camera ist dann parent zum pivot und dreht sich dann auf der x-achse. | ||
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn du ein Terrain hast, solltest du anstatt die Kollision zu benutzen lieber TerrainY![]() ![]() Zitat: ;Gravitation .....
If P_Y<TerrainY() Then PositionEntity(cam,P_X,TerrainY()+1,P_Z) (natürlich Pseudocode ![]() |
||
Twitter
Download Jewel Snake! Windows|Android |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group