Hallo.
Code: Alles auswählen
InitEngine3D()
Add3DArchive("3d-Test", #PB_3DArchive_FileSystem)
InitSprite()
InitKeyboard()
InitMouse()
OpenWindow(0, 0, 0, 1024, 768, "")
OpenWindowedScreen(WindowID(0), 0, 0, 1024, 768, 0, 0, 0)
SetFrameRate(200)
EnableWorldPhysics(1)
EnableWorldCollisions(1)
LoadMesh (0, "kamera.mesh")
LoadMesh (1, "boden.mesh")
LoadMesh (2, "haus.mesh")
LoadTexture(0, "kamera-texture.jpg")
LoadTexture(1, "boden-texture.jpg")
LoadTexture(2, "haus-texture.jpg")
CreateMaterial(0, TextureID(0))
CreateMaterial(1, TextureID(1))
CreateMaterial(2, TextureID(2))
CreateEntity(0, MeshID(0), MaterialID(0))
CreateEntity(1, MeshID(1), MaterialID(1))
CreateEntity(2, MeshID(2), MaterialID(2))
RotateEntity(1, 90, 0, 0)
EntityLocate(1,0,-100,0)
ScaleEntity(1,5,5,5)
ScaleEntity(0,0.3,0.3,0.3)
EntityLocate(0,-1000,0,0)
EntityLocate(2,0,30,0)
CreateCamera(0, 0, 0, 100, 100)
CameraLocate(0,0,0,0)
RotateCamera(0,-0,0,0)
CameraBackColor(0, RGB(0, 0, 255))
CreateCamera(1, 50, 50, 50, 50)
CameraLocate(1,0,1500,00)
RotateCamera(1,-55,0,0)
EntityPhysicBody(0, #PB_Entity_BoxBody,#PB_Entity_AbsoluteBodyMove)
EntityPhysicBody(1, #PB_Entity_StaticBody )
EntityPhysicBody(2, #PB_Entity_StaticBody )
CreateLight(0, RGB(255,255,255), 0, 1000, 0)
speed.f=400
Repeat
If ExamineWorldCollisions()
Debug "crash"
col= NextWorldCollision()
Debug col
EndIf
If ExamineKeyboard()
If KeyboardPushed(#PB_Key_A)
KeyX.f = -speed/2
ElseIf KeyboardPushed(#PB_Key_D)
KeyX.f = speed/2
Else
KeyX = 0
EndIf
If KeyboardPushed(#PB_Key_W)
KeyY.f = -speed
ElseIf KeyboardPushed(#PB_Key_S)
KeyY.f = speed
Else
KeyY = 0
EndIf
EndIf
If ExamineMouse()
MouseX.f = -MouseDeltaX()/10
MouseY.f = -MouseDeltaY()/10
mousex1.f+mousex
mousey1.f+mousey
EndIf
If mousey1.f>55
mousey1.f=55
EndIf
If mousey1.f<-55
mousey1.f=-55
EndIf
If mousex1>=360 Or mousex1<=-360
Mousex1=0
EndIf
PointPick(0, 1024/2, 768/2)
rix.f=PickX()
riy.f=PickY()
riz.f=PickZ()
x.f= -Keyy*rix-Keyx*riz
y.f= -KeyY*riz+Keyx*rix
RotateCamera(0, MouseY1, MouseX1, 0, #PB_Absolute)
RotateEntity(0, 0, MouseX1, 0, #PB_Absolute)
EntityLocate(0,EntityX(0),EntityY(1)+100,EntityZ(0))
MoveEntity(0, x, 0, y)
CameraLocate(0,EntityX(0),EntityY(0),EntityZ(0))
CameraLookAt(1,EntityX(0),EntityY(0),EntityZ(0))
;Delay(20)
RenderWorld()
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)
musste da auch ein bißchen dran rum experimentiert bis ich das hatte. Komme jetz aber leider nicht mehr weiter weil die Collisionsabfrage mit statischen Objekten immer noch nicht funktioniert und weil der Parameter #PB_Entity_AbsoluteBodyMove offenbar einen Fehler veruhrsacht.
Vieleicht kannst du ja mit dem Code was anfangen.
MfG.