Moveentity (minib3d)

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

Ana

Betreff: Moveentity (minib3d)

BeitragDo, Dez 09, 2010 15:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Nach meinem Verständnis von Movenetity sollte es ja die realtiveposition und den drehwinkel berücksichtigen, bei folgendem Code ist es aber eher ein translateentity da die drehung keinen einfluss hat. Was mach ich da falsch oder kann es sein das mein MiniB3D ein wenig kaputt ist, hat auch ewig gedauert bis es dann mal reibungslos funktioniert hatte.

Außerdem finde ich die Plane nicht die eigentlich ja auch entstanden sein sollte...

BlitzMax: [AUSKLAPPEN]
Import sidesign.miniB3D

Graphics3D 800,600,0,2

Global cam_pivot:TEntity = CreatePivot()
Global cam:TCamera = CreateCamera(cam_pivot)
PositionEntity cam, 0, 0, -10

Local cube:TEntity = CreateCube()
PositionEntity cube, -5, 0, 0

Local sphere:TEntity = CreateSphere()
PositionEntity sphere, -2, 0, 0

Local cone:TEntity = CreateCone()
PositionEntity cone, 2, 0, 0

Global Plane= CreatePlane()


Global Light:TEntity = CreateLight()

Repeat
Steuerung()
UpdateWorld
RenderWorld
Flip
Until KeyDown(KEY_ESCAPE) Or AppTerminate()
ClearWorld
End


Function Steuerung()
If KeyDown(KEY_W) Then MoveEntity(cam_pivot,0,0,0.1)
If KeyDown(KEY_S) Then MoveEntity(cam_pivot,0,0,-0.1)
If KeyDown(KEY_A) Then MoveEntity(cam_pivot,-0.1,0,0)
If KeyDown(KEY_D) Then MoveEntity(cam_pivot,0.1,0,0)
If KeyDown(KEY_Q) Then TurnEntity(cam,pivot,1,0,0)
If KeyDown(KEY_E) Then TurnEntity(cam,pivot,-1,0,0)
End Function
Don't only practice your art,
but force your way into its secrets,
for it and knowledge
can raise human to divine

blackgecko

BeitragDo, Dez 09, 2010 19:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Das Problem liegt hier:
BlitzMax: [AUSKLAPPEN]
If KeyDown(KEY_Q) Then TurnEntity(cam,pivot,1,0,0)
If KeyDown(KEY_E) Then TurnEntity(cam,pivot,-1,0,0)

Die Syntax von Turnentity ist folgende:
Code: [AUSKLAPPEN]
TurnEntity(ent:TEntity,x#,y#,z#,glob=False)

Die Variable pivot existiert nicht und deshalb macht BlitzMax automatisch einen Integer daraus mit Inhalt 0. -> SuperStrict benutzen!
Richtig muss es heißen:
BlitzMax: [AUSKLAPPEN]
If KeyDown(KEY_Q) Then TurnEntity(cam_pivot,1,0,0)
If KeyDown(KEY_E) Then TurnEntity(cam_pivot,-1,0,0)


CreatePlane() wurde meines Wissens noch nicht eingebaut bzw sie steht einfach irgendwo ohne Inhalt rum.
EDIT: Hab sie gefunden in sidesign.mod/minib3d.mod/inc/functions.bmx:
BlitzMax: [AUSKLAPPEN]
' ***todo***
[...]
Function CreatePlane(sub_divs=1,parent:TEntity=Null)
End Function
[...]

Ana

BeitragDo, Dez 09, 2010 20:06
Antworten mit Zitat
Benutzer-Profile anzeigen
ach super da fällt mir aber ein stein vom herzen, dachte schon ich hätte es immer noch nicht richtig installiert, ich danke dir Smile
Don't only practice your art,
but force your way into its secrets,
for it and knowledge
can raise human to divine

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group