Ответ: Капсульный игрок в PhysX Wrapper
Graphics3D 800,640
SetBuffer BackBuffer()
;light
light=CreateLight(1)
PositionEntity light,0,50,20
;cam
cam=CreateCamera()
PositionEntity cam,0,5,-5
;plane
plane=CreatePlane()
tile1=LoadTexture("d:\bcm\models\88sad\O23SCV96.jp g")
ScaleTexture tile1,5,5
EntityTexture plane,tile1
;physX
pxCreateWorld(1, "key")
pxSetGravity(0,-30,0)
;create capsule
capsule2 = Create_Px_Capsule(Mesh_Capsule(2, 1), 2, 1)
pxBodySetPosition(capsule2, 0, 5, 0)
Repeat
If KeyDown(17)
pxBodyAddLocalForce(capsule2,0,5,5,0)
EndIf
pxRenderPhysic(60,0)
Update_Px_Cube()
UpdateWorld()
RenderWorld()
Flip
Until KeyHit(1)
End
Type Px_Cube
Field cube_body%
Field cube_mesh%
End Type
Function Create_Px_Capsule(mesh, height#, radius#)
ocu.Px_Cube = New Px_Cube
ocu\cube_mesh = CopyEntity (mesh)
ocu\cube_body = pxBodyCreateCapsule%(height, radius,2)
pxBodySetPosition(ocu\cube_body, 0, 0, 0)
Return ocu\cube_body
End Function
Function Update_Px_Cube()
For ocu.Px_Cube = Each Px_Cube
pxBodySetEntity(ocu\cube_mesh, ocu\cube_body)
Next
End Function
Function Mesh_Capsule(height#, radius#)
capsule=LoadMesh("d:\bcm\models\ivan\ivan.b3d")
HideEntity capsule
Return capsule
End Function
вот во общем код. В нем игрок стоит в физической капсуле. при нажатие на "W" он тупо падает вперед(((
|