Node bewegt Entitybody's nicht mit
Verfasst: 12.03.2016 01:12
Bei meinem ersten Post im Forum möchte ich sagen dass Purebasic wirklich die beste Investition war die ich je gemacht habe.
Und möchte mich bei euch allen im Forum bedanken für die exzellente Unterstützung , die es möglich machte seit V3.50 ohne Post's
durch zu kommen!
Und jetzt zu unserm Problem:
Sobald Entity's zu einer Node zusammen geklemmt werden bewegen sich ihre Entitybody's (Physikbody's) nicht mit,
obwohl sie im WorldDebug(#PB_World_DebugBody) Mode eigentlich richtig angezeigt werden.
Für mein Projekt würde es mir unheimlich weiterhelfen wenn das Funktioniert.
Listing ist selbsterklärend (hoffentlich).
Ach so das ganze wurde mit PB5.42 auf Win7 32/64bit getestet.

Und möchte mich bei euch allen im Forum bedanken für die exzellente Unterstützung , die es möglich machte seit V3.50 ohne Post's
durch zu kommen!
Und jetzt zu unserm Problem:
Sobald Entity's zu einer Node zusammen geklemmt werden bewegen sich ihre Entitybody's (Physikbody's) nicht mit,
obwohl sie im WorldDebug(#PB_World_DebugBody) Mode eigentlich richtig angezeigt werden.
Für mein Projekt würde es mir unheimlich weiterhelfen wenn das Funktioniert.
Listing ist selbsterklärend (hoffentlich).
Ach so das ganze wurde mit PB5.42 auf Win7 32/64bit getestet.
Code: Alles auswählen
;If we move a Node, the EntityPhysicBody`s do not move :-(
EnableExplicit
InitEngine3D(#PB_Engine3D_DebugLog)
InitKeyboard()
InitSprite()
RandomSeed(0)
Define.i Ende , Count , Ela_Phy_Ti
Define.s Title=Space(40)+"Move the Node with Cursor Keys" , Title_2=""
OpenWindow(0,0,0,460,300,Title,#PB_Window_ScreenCentered | #PB_Window_SystemMenu)
AddWindowTimer(0,1,700)
OpenWindowedScreen(WindowID(0),0,0,460,300,#False,0,0,#PB_Screen_WaitSynchronization)
WorldDebug(#PB_World_DebugBody)
CreateCamera(0,0,0,100,100)
MoveCamera(0,0,4,8)
CameraLookAt(0,0,0,0)
CreateLight(0,$ffffff,-10,50,10)
CreateTexture(0,2,2)
StartDrawing(TextureOutput(0))
Box(0,0,2,2,$FFFFFF)
StopDrawing()
CreateMaterial(0,TextureID(0))
SetMaterialColor(0, #PB_Material_AmbientColor, $FF0000)
SetMaterialColor(0, #PB_Material_DiffuseColor, $FF0000)
CopyMaterial(0, 1)
SetMaterialColor(1, #PB_Material_AmbientColor, $0000FF)
SetMaterialColor(1, #PB_Material_DiffuseColor, $0000FF)
CreateCube(0,1)
CreateEntity(0,MeshID(0),MaterialID(0) ,-2,0,0)
CreateEntity(1,MeshID(0),MaterialID(0) ,2,0,0)
CreateEntityBody(0, #PB_Entity_BoxBody,0,0.01,1)
CreateEntityBody(1, #PB_Entity_BoxBody,0,0.01,1)
CreateNode(0,0,0,0)
AttachNodeObject(0,EntityID(0))
AttachNodeObject(0,EntityID(1))
For Count=2 To 52
CreateEntity(Count,MeshID(0),MaterialID(1),0,0,0)
ScaleEntity(Count,0.5,0.5,0.5)
CreateEntityBody(Count, #PB_Entity_BoxBody,0.1,0.5,1)
MoveEntity(Count,Random(4)-2,Random(30,3),Random(4)-2,#PB_Absolute)
Next
Repeat
ExamineKeyboard()
Repeat
Select WindowEvent()
Case 0 : Break
Case #PB_Event_CloseWindow : Ende=1
Case #PB_Event_Timer : Swap Title,Title_2 : SetWindowTitle(0,Title)
EndSelect
ForEver
For Count=2 To 52
If EntityY(Count)<-8
MoveEntity(Count,Random(4)-2,Random(32)+4,Random(4)-2,#PB_Absolute)
EndIf
Next
If KeyboardPushed(#PB_Key_Right)
RotateNode(0,0,0.06*Ela_Phy_Ti,0,#PB_Relative)
ElseIf KeyboardPushed(#PB_Key_Left)
RotateNode(0,0,-0.06*Ela_Phy_Ti,0,#PB_Relative)
EndIf
If KeyboardPushed(#PB_Key_Up)
MoveNode(0,0,0,0.002*Ela_Phy_Ti,#PB_Relative)
ElseIf KeyboardPushed(#PB_Key_Down)
MoveNode(0,0,0,-0.002*Ela_Phy_Ti,#PB_Relative)
EndIf
Ela_Phy_Ti=RenderWorld(Ela_Phy_Ti)
FlipBuffers()
Delay(1)
Until Ende=1 Or KeyboardReleased(#PB_Key_Escape)