ich habe das bei PB mitgelieferte Example Entity.pb zu testzwecken ein wenig modifiziert und dabei festgestellt das bei eingeschalteter Physik der Befehl MoveEntity, wenn man einige sekunden lang wartet und dann erst eine Taste drückt um das Entity zu bewegen, nicht mehr reagiert. Könne es sein das es sich hierbei um einen Bug handelt ? Wäre nett wenn jemand von euch das mal abchecken könnte.
Code: Alles auswählen
;
; ------------------------------------------------------------
;
; PureBasic - Entity
;
; (c) 2002 - Fantaisie Software
;
; ------------------------------------------------------------
;
IncludeFile "Screen3DRequester.pb"
Define.f KeyX, KeyY, MouseX, MouseY
If InitEngine3D()
Add3DArchive("Data" , #PB_3DArchive_FileSystem)
Add3DArchive("Data/skybox.zip", #PB_3DArchive_Zip)
InitSprite()
InitKeyboard()
InitMouse()
If Screen3DRequester()
LoadMesh (0, "robot.mesh")
CreateMaterial(0, LoadTexture(0, "clouds.jpg"))
CreateMaterial(1, LoadTexture(1, "r2skin.jpg"))
CreateEntity(0, MeshID(0), MaterialID(0))
CreateEntity(1, MeshID(0), MaterialID(1), -60, 0, 0)
CreateEntity(2, MeshID(0), MaterialID(1), 60, 0, 0)
AnimateEntity(0, "Walk")
SkyBox("desert07.jpg")
CreateCamera(0, 0, 0, 100, 100)
CameraLocate(0,0,0,100)
;------- hinzugefügt -----------
EnableWorldPhysics(1)
EntityPhysicBody(0, #PB_Entity_BoxBody)
;------- ^^^^^^^^^^^ -----------
Repeat
Screen3DEvents()
ClearScreen(RGB(0, 0, 0))
If ExamineKeyboard()
If KeyboardPushed(#PB_Key_Left)
KeyX = -100 ;< geändert von 1 auf -100
ElseIf KeyboardPushed(#PB_Key_Right)
KeyX = 100 ;< geändert von 1 auf 100
Else
KeyX = 0
EndIf
If KeyboardPushed(#PB_Key_Up)
KeyY = -100 ;< geändert von 1 auf -100
ElseIf KeyboardPushed(#PB_Key_Down)
KeyY = 100 ;< geändert von 1 auf 100
Else
KeyY = 0
EndIf
If KeyboardPushed(#PB_Key_PageUp)
RollZ = 3
Else
RollZ = 0
EndIf
If KeyboardPushed(#PB_Key_Add)
Frame.f+0.005
EndIf
EndIf
If ExamineMouse()
MouseX = -MouseDeltaX()/10
MouseY = -MouseDeltaY()/10
EndIf
RotateEntity(1, 0, 1, 0, #PB_Relative)
RotateEntity(2, 0, 1, 0, #PB_Relative)
RotateCamera(0, MouseY, MouseX, RollZ, #PB_Relative)
;------- geändert -----------
;MoveCamera (0, KeyX, 0, KeyY)
MoveEntity (0, KeyX, 0, KeyY)
;------- ^^^^^^^^^^^ -----------
RenderWorld()
Screen3DStats()
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape) Or Quit = 1
EndIf
Else
MessageRequester("Error", "The 3D Engine can't be initialized",0)
EndIf
End