Problem mit Parent Entity

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

Jolinah

Betreff: Problem mit Parent Entity

BeitragDi, Dez 23, 2003 16:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

ich kenn mich noch nicht so aus mit 3d. Daher bin ich im Moment ein bisschen am rumspielen und üben.

Nur hab ich jetzt ein Problem wo ich nicht weiss woran das liegen könnte.

Code: [AUSKLAPPEN]

;Vorbereitungen ---------------------------------------------------------------------------------------

Graphics3D 1024,768,32,1
SetBuffer BackBuffer()

timer = CreateTimer(60)

;Licht -----
AmbientLight(100,100,100)


;Entities -----
raum = LoadMesh("models\room.b3d")

ball = CreateSphere(16)
PositionEntity ball,0,0,10
ballt = LoadTexture("models\ball.jpg",64)
EntityTexture ball,ballt

stab = CreateCube()
ScaleEntity stab,3,0.2,0.2
EntityColor stab,0,0,255


;Collision ------
Const COL_WORLD = 1
Const COL_STAB = 2
Const COL_BALL = 3

EntityType raum,COL_WORLD
EntityType stab,COL_STAB
EntityType ball,COL_BALL

EntityRadius stab,3


;Kamera ------
cam = CreateCamera(stab)
CameraRange cam,1,5000
PositionEntity cam,0,0,-10


;HAUPT PROGRAMM ***************************************************************************************

While Not KeyHit(1)
WaitTimer(timer)


If KeyDown(203) Then MoveEntity stab,-0.1,0,0
If KeyDown(205) Then MoveEntity stab,0.1,0,0

Collisions COL_STAB,COL_WORLD,2,1

UpdateWorld
RenderWorld



Flip
Wend


ClearWorld

EndGraphics
End


Bild1:
user posted image

Bild2:
user posted image


Nun zu meinem Problem. Ich hab nen Raum geladen (selber gebasteltes modell), hab ne Kugel und nen Stab reingemacht. Ich möchte das der Stab das Parent Entity für die Kamera ist. Wenn ich es ohne Parent Entity mache klappt es von der Darstellung her (Bild1). Wenn ich aber für die Kamera als Parent Entity den Stab setze wird irgendwie alles verzerrt. Ganzer Raum + Kugel usw. (Bild2).

Ich vermute es könnte auch nen Zusammenhang haben mit dem Scaleentity Befehl, denn irgendwie wird alles um genau diese Faktoren die ich benutzt habe verzerrt. Ich habe es auch schon mit ScaleMesh versucht, aber da kam das selbe raus.

Weiss jemand woran das liegen kann?


Edit: Jetzt hab ich das selbe noch gemacht ohne den Würfel zu skalieren. Dann funktioniert es auch mit Parent Entity. Sobald ich den Befehl benutze wird alles verzerrt.


Edit 2:
Ich weiss nun wahrscheinlich woran es liegt.. Das Kamera Entity wird verzerrt, somit ist die ganze Ansicht verzerrt. Aber wieso? Ich dachte wenn man Änderungen an den Entities vornimmt bevor man sie als Parent setzt sollte das keine Auswirkungen auf das Child Entity haben? Erst nachdem es gesetzt wurde..

Wie könnte ich das verhindern?
 

INpac

BeitragDi, Dez 23, 2003 16:36
Antworten mit Zitat
Benutzer-Profile anzeigen
hi.
scale einfach die Kamera danach noch mal AUF 1,1,1... ?

Jolinah

BeitragDi, Dez 23, 2003 16:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Daran dachte ich auch schon..

Aber ich denke ScaleEntity ist ein Relativer Befehl. Würde schon gehen aber nicht mit 1,1,1 dann bleibt es gleich gross.

Edit: Ahne hast recht sorry Wink ScaleEntity ist Absolut.

Ich hab jetzt ein Pivot an der Stelle des Balkens gemacht. Das Pivot ist Parent des Balkens und Parent der Kamera. Den Balken kann ich somit unabhängig des Parents skalieren. Dann beweg ich das Pivot und die Kamera bewegt sich auch mit da sie auch das Pivot als Parent hat.

Nur musste ich für das Pivot dann auch Kollisionsabfrage benutzen. Da sonst der Balken stehen bleiben würde aber das Pivot (und somit auch die Kamera) einfach trotzdem weiter gehen würden.

Ist das aber normal das Entities die vorher geändert wurde aber erst danach als Parent gesetzt werden alle Änderungen trotzdem auf die Child's übertragen?

Weil z.bsp. EntityType pivot,COL_STAB
wirkt sich nicht auf die Childs aus anscheinend. Denn meine Kamera kollidiert nicht mit dem Raum. Aber wenn sich der Befehl richtig auswirken würde, wären alle Childs ja dann auch vom Type COL_STAB

tft

BeitragMi, Dez 24, 2003 8:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi.....

wenn du die BlitzHilfe liest, wird dir auffallen das ScaleEntity einen Fierten Parameter erlaubt mit dem man angeben kann ob die Parent Scalierung mit berücksichtigt werden soll. Probiers mal damit.
TFT
https://www.sourcemagic.ch
Monkey,HTML5,CSS3,W 10 64 Bit, 32 GB Ram, GTX Titan, W8 ist Müll !!!!!!

Jolinah

BeitragMi, Dez 24, 2003 21:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Ahso, jetzt weiss ich endlich wozu der Parameter gut ist. Ich wurde aus der Blitzhilfe nicht ganz so schlau. Das einzige was ich dort gesehen habe war der Parameter selbst der mit "global" bezeichnet wurde. Eine Beschreibung dazu war aber nicht vorhanden. Vielleicht habe ich auch nicht die aktuellste Version der Hilfe.

Danke Wink

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group