Berg zu steil?

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

juse4pro

Betreff: Berg zu steil?

BeitragDi, Jun 17, 2008 17:25
Antworten mit Zitat
Benutzer-Profile anzeigen
hi
,ich habe ne H-map und habe collision mit der camera (Collisions Tcam,Tmap,2,3)

und ich mache:
Code: [AUSKLAPPEN]
PositionEntity cam,EntityX(cam)-Sin(EntityYaw(cam))*0.1,EntityY(cam),EntityZ(cam)+Cos(EntityYaw(cam))*0.1


aber die kamera kommt nur Sehr schwer ein berg hoch, wie kann ich es machen, dass die kamera immer hoch geht, egal wie hoch der berg ist?


help^^
Portfolio |LinkedIn |XING

hectic

Sieger des IS Talentwettbewerb 2006

BeitragDi, Jun 17, 2008 17:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Eventuell reicht schon Collisions den vierten Parameter auf 3 zu stellen.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

juse4pro

BeitragDi, Jun 17, 2008 17:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
,ich habe ne H-map und habe collision mit der camera (Collisions Tcam,Tmap,2,3)


habe ich doch schon^^
Portfolio |LinkedIn |XING

aMul

Sieger des Minimalist Compo 01/13

BeitragDi, Jun 17, 2008 18:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Du könntest versuchen, den Spieler/die Kamera vor dem eigentlichen Bewegen nach oben zu verschieben, und danach wieder den gleichen Betrag nach unten.
Kann nicht versprechen, dass es klappt, aber einen Versuch ist es wert Wink

EDIT:
Oh, und was du dir vielleicht auch noch anschauen solltest(falls du es noch nicht kennst und absichtlich nicht benutzt): TranslateEntity

hectic

Sieger des IS Talentwettbewerb 2006

BeitragDi, Jun 17, 2008 18:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Dann hast du entweder eine ''Abrollroutine'' drin, die stets versucht die Kamera den Berg runter zu purzeln, oder du berechnest die Kamerabewegung zu kompliziert. Es müsste dann nur heissen: Bewege nur X und Z, wobei dann die Y-Achse von Blitz3D berechnet wird. Die Bewegung über X und Z muss natürlich normalisiert sein. Das heisst, wenn du - um auf den Berg zu kommen - nach oben schaust, ist natürlich der Vektor nicht mehr 1 lang, sondern weniger. Dadurch währe die Bewegung natürlich langsamer.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

juse4pro

BeitragDi, Jun 17, 2008 18:19
Antworten mit Zitat
Benutzer-Profile anzeigen
ich habe im mainloop:
Code: [AUSKLAPPEN]

TranslateEntity cam,0,-.3,0


wie wäre es denn richtig?
Portfolio |LinkedIn |XING

hectic

Sieger des IS Talentwettbewerb 2006

BeitragDi, Jun 17, 2008 18:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab mir die Problematik mal angesehen und festgestellt, das eben das ''runterpurzeln'' das Problem verursacht. Mein Vorschlag: Bediehn dich der X und Z -Koordinate und setze die Höhe der Kamera auf TerrainY +Offset. Dabei sollte der Kamers die Kollisionsfähigkeit entzogen werden, denn diese berechnest du nun ja selbst auf dem Terrain. Sollte das aus welchen Gründen auch immer nicht gehen, kannst du folgenden Workaround benutzen:

Code: [AUSKLAPPEN]
Graphics3D 800,600,0,2
SetBuffer BackBuffer()

Local Timer=CreateTimer(100)
Local Camera=CreateCamera()
Local Terrain=LoadTerrain("e:\hm.png")
Local Ball=CreateSphere(32)
Local Light=CreateLight()

ScaleEntity Terrain,1,12,1
PositionEntity Camera,64,12,64
PositionEntity Ball,64,12,80
TurnEntity Light,30,-30,0
EntityColor Terrain,64,64,64

EntityType Terrain,2
EntityType Ball,1

Collisions 1,2,2,3




While Not KeyHit(1)
   TranslateEntity Ball,0,1,0
   UpdateWorld
   If KeyDown(203) Then TranslateEntity Ball,-0.1,0,0
   If KeyDown(205) Then TranslateEntity Ball,+0.1,0,0
   If KeyDown(200) Then TranslateEntity Ball,0,0,+0.1
   If KeyDown(208) Then TranslateEntity Ball,0,0,-0.1
   TranslateEntity Ball,0,-1.1,0
   
   WaitTimer(Timer)
   UpdateWorld
   RenderWorld
   Flip 0
Wend
End


In diesem Workaround wird allerdings zweimal UpdateWorld aufgerufen, was die Sachen nicht unbedingt schneller macht.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group