I found a few strange things with Physicsbodies. These types:
Code: Select all
#PB_Entity_CylinderBody
#PB_Entity_BoxBody
#PB_Entity_CapsuleBodyHere´s my code (You can test it with your entities, too):
Code: Select all
;
; ------------------------------------------------------------
;
; Entity-Physicsbodybug
;
; (c) 2014 - Chimorin
;
; ------------------------------------------------------------
;
EnableExplicit
Structure Vektor3
x.d
y.d
z.d
EndStructure
Define.f KeyX, KeyY, MouseX, MouseY
Define nx.f, nz.f, Yaw.f, Pitch.f
Define.i Quit, boden, zaehler, toggler, mesh, red, blue, green, test1, test2, test3, tree, test4, test5
#kam_0 = 0
#window = 0
#plane = 0
#planent = 0
#light = 0
If InitEngine3D()
Add3DArchive(#PB_Compiler_Home + "Examples/3D/Data/Textures", #PB_3DArchive_FileSystem)
Add3DArchive(#PB_Compiler_Home + "Examples/3D/Data/Scripts", #PB_3DArchive_FileSystem)
Add3DArchive(#PB_Compiler_Home + "Examples/3D/Data/Models", #PB_3DArchive_FileSystem)
Add3DArchive("\", #PB_3DArchive_FileSystem)
Parse3DScripts()
InitSprite()
InitKeyboard()
InitMouse()
;-Window
OpenWindow(#window, 0, 0, 1800, 1000, "Entityphysicsbug", #PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(#window), 10, 10, 2000, 2000, 0, 10, 10, #PB_Screen_SmartSynchronization)
;-Light
CreateLight(#light, RGB(255, 255, 255), 30, 20, 30)
;-World
EnableWorldPhysics(#True)
EnableWorldCollisions(#True)
WorldGravity(-9.81)
WorldShadows(#PB_Shadow_TextureAdditive, 200, RGB(255 * 0.2, 255 * 0.2, 255 * 0.2), 4096)
WorldDebug(#PB_World_DebugBody)
AmbientColor(RGB(255 * 0.2, 255 * 0.2, 255 * 0.2))
;-Allgemein
CreatePlane(#plane, 100, 100, 100, 100, 100, 100)
boden = GetScriptMaterial(#PB_Any, "Scene/GroundBlend")
red = GetScriptMaterial(#PB_Any, "Color/Red")
blue = GetScriptMaterial(#PB_Any, "Color/Blue")
green = GetScriptMaterial(#PB_Any, "Color/Green")
MaterialFilteringMode(boden, #PB_Material_Anisotropic, 16)
CreateEntity(#planent, MeshID(#plane), MaterialID(boden), 0, 0, 0)
EntityPhysicBody(#planent, #PB_Entity_StaticBody)
EntityRenderMode(#planent, 0)
;Mesh and Entities
tree = LoadMesh(#PB_Any, "ninja.mesh") ;-Here you have to load your mesh.
test1 = CreateEntity(#PB_Any, MeshID(tree), MaterialID(red), 0, 10, 0)
ScaleEntity(test1, 0.01, 0.01, 0.01, #PB_Relative)
EntityPhysicBody(test1, #PB_Entity_BoxBody, 30)
test2 = CreateEntity(#PB_Any, MeshID(tree), MaterialID(blue), 10, 10, 0)
ScaleEntity(test2, 0.01, 0.01, 0.01, #PB_Relative)
EntityPhysicBody(test2, #PB_Entity_CylinderBody, 30)
test3 = CreateEntity(#PB_Any, MeshID(tree), MaterialID(green), 0, 11, 10)
ScaleEntity(test3, 0.01, 0.01, 0.01, #PB_Relative)
EntityPhysicBody(test3, #PB_Entity_ConvexHullBody, 30)
test4 = CreateEntity(#PB_Any, MeshID(tree), MaterialID(green), 10, 10, 20)
ScaleEntity(test4, 0.01, 0.01, 0.01, #PB_Relative)
EntityPhysicBody(test4, #PB_Entity_CapsuleBody, 30)
test5 = CreateEntity(#PB_Any, MeshID(tree), MaterialID(green), 20, 10, 30)
ScaleEntity(test5, 0.01, 0.01, 0.01, #PB_Relative)
EntityPhysicBody(test5, #PB_Entity_ConvexHullBody, 30)
;-Camera
CreateCamera(#kam_0, 0, 0, 100, 100)
MoveCamera(#kam_0, 0, 20, 0, #PB_Absolute)
CameraLookAt(#kam_0, 20, 0, 20)
CameraRange (#kam_0, 2, 5000)
CameraFOV (#kam_0, 90)
CameraBackColor(#kam_0, RGB(0, 0, 0))
Repeat
If ExamineMouse()
Yaw = -MouseDeltaX() * 0.05
Pitch = -MouseDeltaY() * 0.05
EndIf
If ExamineKeyboard()
If KeyboardPushed(#PB_Key_Up)
MoveCamera(0, 0, 0, -2)
ElseIf KeyboardPushed(#PB_Key_Down)
MoveCamera(0, 0, 0, 2)
EndIf
If KeyboardPushed(#PB_Key_Left)
MoveCamera(0, -2, 0, 0)
ElseIf KeyboardPushed(#PB_Key_Right)
MoveCamera(0, 2, 0, 0)
EndIf
If KeyboardReleased(#PB_Key_Q)
If Not toggler
toggler = 1
Else
toggler = 0
EndIf
EndIf
EndIf
RotateCamera(0, Pitch, Yaw, 0, #PB_Relative)
If toggler
RenderWorld()
Else
RenderWorld(0)
EndIf
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape) Or Quit = 1
Else
MessageRequester("Error", "The 3D Engine can't be initialized", 0)
EndIf
End
How to Change the size of Pictures? It´s very small (Just click on it)

