Using PointJoint
Code: Select all
IncludeFile #PB_Compiler_Home + "examples/3d/Screen3DRequester.pb"
If InitEngine3D()
InitSprite()
InitKeyboard()
InitMouse()
If Screen3DRequester()
Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/Textures", #PB_3DArchive_FileSystem)
Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/Scripts" , #PB_3DArchive_FileSystem)
Parse3DScripts()
; First create materials
;
CreateMaterial(0, LoadTexture(0, "Wood.jpg"))
CreateMaterial(1, LoadTexture(1, "Dirt.jpg"))
GetScriptMaterial(2, "Examples/LightRibbonTrail")
; Meshes
;
CreateCube(0, 1)
CreateSphere(1, 0.5)
; Entities
;
CreateEntity(0, MeshID(0), MaterialID(0), 0, 0, 0)
CreateEntity(1, MeshID(0), MaterialID(0), 0, -5.1, 0)
CreateEntity(2, MeshID(1), MaterialID(1), 0, -5.1, 0)
CreateEntity(3, MeshID(1), MaterialID(1), 0, 0, 0)
ScaleEntity(0,1,10,1)
ScaleEntity(1,1,10,1)
;Ribbon
CreateRibbonEffect(0, MaterialID(2), 1, 2800, 180)
RibbonEffectColor(0, 0, RGBA(0, 255*0.8, 255*0.8, 255), RGBA(0, 255, 0, 5))
RibbonEffectWidth(0, 0, 0.5, 0.2)
AttachRibbonEffect(0, EntityParentNode(3))
; Bodies
;
CreateEntityBody(0, #PB_Entity_BoxBody , 1.0)
CreateEntityBody(1, #PB_Entity_BoxBody , 1.0)
CreateEntityBody(2, #PB_Entity_SphereBody, 1.0)
CreateEntityBody(3, #PB_Entity_SphereBody, 0.00001)
; PointJoint
;
PointJoint(0, EntityID(0), 0, 5.5, 0)
PointJoint(1, EntityID(0), 0, -5.5, 0, EntityID(2), 0, 0, 0)
PointJoint(2, EntityID(1), 0, 5.5, 0, EntityID(2), 0, 0, 0)
PointJoint(3, EntityID(1), 0, -5.5, 0, EntityID(3), 0, 0, 0)
For i=0 To 3
EntityLinearFactor(i, 1, 1, 0)
Next
; Camera
;
CreateCamera(0, 0, 0, 100, 100)
MoveCamera(0, 0, 0, 50, #PB_Absolute)
;- Light
;
AmbientColor(RGB(25, 25, 25))
CreateLight(0, RGB(215, 190, 40), 75, 75, 75)
; GO
;
ApplyEntityImpulse(1, 10, 0, 0)
Repeat
Screen3DEvents()
ExamineKeyboard()
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
Code: Select all
IncludeFile #PB_Compiler_Home + "examples/3d/Screen3DRequester.pb"
If InitEngine3D()
InitSprite()
InitKeyboard()
InitMouse()
If Screen3DRequester()
Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/Textures", #PB_3DArchive_FileSystem)
Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/Scripts" , #PB_3DArchive_FileSystem)
Parse3DScripts()
; First create materials
;
CreateMaterial(0, LoadTexture(0, "Wood.jpg"))
CreateMaterial(1, LoadTexture(1, "Dirt.jpg"))
GetScriptMaterial(2, "Examples/LightRibbonTrail")
; Meshes
;
CreateCube(0, 1)
CreateSphere(1, 0.5)
; Entities
;
CreateEntity(0, MeshID(0), MaterialID(0), 0, 0, 0)
CreateEntity(1, MeshID(0), MaterialID(0), 0, -5.1, 0)
CreateEntity(2, MeshID(1), MaterialID(1), 0, -5.1, 0)
CreateEntity(3, MeshID(1), MaterialID(1), 0, 0, 0)
ScaleEntity(0,1,10,1)
ScaleEntity(1,1,10,1)
;Ribbon
CreateRibbonEffect(0, MaterialID(2), 1, 2800, 180)
RibbonEffectColor(0, 0, RGBA(0, 255*0.8, 255*0.8, 255), RGBA(0, 255, 0, 5))
RibbonEffectWidth(0, 0, 0.5, 0.2)
AttachRibbonEffect(0, EntityParentNode(3))
; Bodies
;
CreateEntityBody(0, #PB_Entity_BoxBody , 1.0)
CreateEntityBody(1, #PB_Entity_BoxBody , 1.0)
CreateEntityBody(2, #PB_Entity_SphereBody, 1.0)
CreateEntityBody(3, #PB_Entity_SphereBody, 0.00001)
; HingeJoint
;
HingeJoint(0, EntityID(0), 0, 5.5, 0, 0, 0, 1, -2 , 0, 0, 0, 0, 0, 0)
HingeJoint(1, EntityID(0), 0, -5.5, 0, 0, 0, 1, EntityID(2), 0, 0, 0, 0, 0, 1)
HingeJoint(2, EntityID(1), 0, 5.5, 0, 0, 0, 1, EntityID(2), 0, 0, 0, 0, 0, 1)
HingeJoint(3, EntityID(1), 0, -5.5, 0, 0, 0, 1, EntityID(3), 0, 0, 0, 0, 0, 1)
;SetJointAttribute(0, #PB_HingeJoint_LowerLimit, -45)
;SetJointAttribute(0, #PB_HingeJoint_UpperLimit, 45)
; Camera
;
CreateCamera(0, 0, 0, 100, 100)
MoveCamera(0, 0, 0, 50, #PB_Absolute)
;- Light
;
AmbientColor(RGB(25, 25, 25))
CreateLight(0, RGB(215, 190, 40), 75, 75, 75)
; GO
;
ApplyEntityImpulse(1, 10, 0, 0)
Repeat
Screen3DEvents()
ExamineKeyboard()
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