Показать сообщение отдельно
Старый 17.12.2009, 16:45   #10
JohnAustin
Оператор ЭВМ
 
Аватар для JohnAustin
 
Регистрация: 25.09.2009
Адрес: Россия, Пермский край, г.Березники
Сообщений: 20
Написано одно полезное сообщение
Ответ: Капсульный игрок в 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" он тупо падает вперед(((
(Offline)
 
Ответить с цитированием