bewegen im 3d-raum

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

xaerox

Betreff: bewegen im 3d-raum

BeitragDi, Dez 13, 2011 19:58
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragDi, Dez 13, 2011 20:49
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragDi, Dez 13, 2011 20:52
Antworten mit Zitat
Benutzer-Profile anzeigen
ok ich werde mich da weiter rumwühlen
danke
Biker sind wahre Helden.
Auch Musiker.
 

Inso

BeitragMi, Dez 14, 2011 16:20
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragFr, Jan 06, 2012 22:43
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSa, Jan 07, 2012 6:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du ein Terrain hast, solltest du anstatt die Kollision zu benutzen lieber TerrainY benutzen. Ist viel schneller, und außerdem kannst du die Kamera auch "ruckelfrei" rumgleiten lassen Wink

Zitat:
;Gravitation .....
If P_Y<TerrainY() Then PositionEntity(cam,P_X,TerrainY()+1,P_Z)

(natürlich Pseudocode Very Happy)
Twitter
Download Jewel Snake!
Windows|Android

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group