AnyKey`щик
Регистрация: 11.12.2007
Сообщений: 18
Написано одно полезное сообщение (для 0 участников)
|
Xors3D + PhysX Проблема
Вот стандартный пример Pabeda на Xors +PhysX вроде сделал все правильно
только машина проезжает сквозь стены...
Include "xors3d.bb"
xGraphics3D 1024,768,32,0,0
;Lights
light = xCreateLight()
;Camera
camera = xCreateCamera()
xPositionEntity camera,0,40,-40
xRotateEntity camera,20,0,0
;PX
pxCreateWorldWithoutDrivers(0, "key")
PxCreateWorld(0, "key")
pxSetGravity(0,-30,0)
;level
level = xLoadMesh ("level.b3d")
xPositionMesh level, 0,-2,0
xScaleMesh level,5,5,5
Видимо сдесь проблема ну по примеру все верно.. хм странно
VB = xGetMeshVB(level)
VB_size = xGetMeshVBSize(level)
IB = xGetMeshIB(level)
IB_size=xGetMeshIBSize(level)
in_mesh=pxCreateTriMesh(VB, IB, VB_size, IB_size, 0)
tile = xLoadTexture("..\media\textur.bmp")
xScaleTexture tile,0.02,0.02
xEntityTexture level,tile
;---------Create car------------
car_mesh = xLoadMesh("..\media\pobeda.b3d")
xScaleMesh car_mesh,5,5,5
xRotateEntity car_mesh ,0,90,0
xPositionEntity car_mesh ,0,8,0
car_phys_mesh = xLoadMesh("..\media\pobeda_phys.b3d")
xScaleMesh car_phys_mesh,5,5,5
xRotateEntity car_phys_mesh ,0,90,0
xPositionEntity car_phys_mesh ,0,8,0
xEntityAlpha car_phys_mesh,0
VB = xGetMeshVB(car_phys_mesh)
VB_size = xGetMeshVBSize(car_phys_mesh)
car_body=pxBodyCreateHull(VB, VB_size,1000)
pxBodySetPosition (car_body, 0, 15 ,0)
pxBodySetRotation (car_body, 0, 90, 0)
pxBodySetCMassLocalPosition(car_body, 0, -4, 0)
;------- front wheel-----------
wheel_fr1_body = pxWheelAddToBody(car_body, -4, -2, 8.5)
pxWheelSetRadius(wheel_fr1_body, 2)
pxWheelSetSuspension(wheel_fr1_body,1,200,1)
wheel_fr1_mesh = xLoadMesh ("..\media\pobeda_wheel.b3d")
xRotateMesh wheel_fr1_mesh,0,180,0
xScaleEntity wheel_fr1_mesh,5,5,5
wheel_fr2_body = pxWheelAddToBody(car_body, 4, -2, 8.5)
pxWheelSetRadius(wheel_fr2_body, 2)
pxWheelSetSuspension(wheel_fr2_body,1,200,1)
wheel_fr2_mesh = xLoadMesh ("..\media\pobeda_wheel.b3d")
xScaleEntity wheel_fr2_mesh,5,5,5
;-------back wheel------------
wheel_bac1_body = pxWheelAddToBody(car_body, -4, -2, -6.5)
pxWheelSetRadius(wheel_bac1_body, 2)
pxWheelSetSuspension(wheel_bac1_body,1,200,1)
wheel_bac1_mesh = xLoadMesh ("..\media\pobeda_wheel.b3d")
xRotateMesh wheel_bac1_mesh,0,180,0
xScaleEntity wheel_bac1_mesh,5,5,5
wheel_bac2_body = pxWheelAddToBody(car_body, 4, -2, -6.5)
pxWheelSetRadius(wheel_bac2_body, 2)
pxWheelSetSuspension(Wheel_bac2_body,1,200,1)
wheel_bac2_mesh = xLoadMesh ("..\media\pobeda_wheel.b3d")
xScaleEntity wheel_bac2_mesh,5,5,5
pxWheelSetFrictionToSide(Wheel_fr1_body, 50000)
pxWheelSetFrictionToSide(Wheel_fr2_body, 50000)
pxWheelSetFrictionToSide(Wheel_bac1_body, 50000)
pxWheelSetFrictionToSide(Wheel_bac2_body, 50000)
;Main Loop
Repeat
xPointEntity camera, car_mesh
If xKeyDown (205) ang = ang+1
If xKeyDown (203) ang = ang-1
If xKeyDown (200) motor = motor+5
If xKeyDown (208) motor = motor-5
If motor>400 motor = 400
If motor<-400 motor = -400
pxWheelSetMotorTorque(wheel_bac1_body, motor)
pxWheelSetMotorTorque(wheel_bac2_body, motor)
If ang>30 ang = 30
If ang<-30 ang = -30
pxWheelSetSteerAngle(wheel_fr1_body, ang)
pxWheelSetSteerAngle(wheel_fr2_body, ang)
pxWheelSetBrakeTorque(wheel_bac1_body, 1)
pxWheelSetBrakeTorque(wheel_bac2_body, 1)
If xKeyDown (57)
pxWheelSetBrakeTorque(wheel_bac1_body, 500)
pxWheelSetBrakeTorque(wheel_bac2_body, 500)
motor=0
EndIf
pxRenderPhysic(60,0)
xUpdateWorld
xRenderWorld
xUpdatePhysxPose car_mesh
pxDX9BodySetEntity(car_mesh,car_body)
MeshSetToWheel(wheel_fr1_mesh, wheel_fr1_body)
MeshSetToWheel(wheel_fr2_mesh, wheel_fr2_body)
MeshSetToWheel(wheel_bac1_mesh, wheel_bac1_body)
MeshSetToWheel(wheel_bac2_mesh, wheel_bac2_body)
xText 10,10, "FPS "+xGetFPS()
xText 10,30, "TrisRendered "+xTrisRendered()
xText 10,50,"angle= "+ang+ " motor= "+ motor
xFlip
Until xKeyHit(1) Or xWinMessage("WM_CLOSE")
Function MeshSetToWheel (mesh%, body%)
pxWheelUpdateSpec(body,1)
posX# = pxWheelGetPositionXSpec#(body%)
posY# = pxWheelGetPositionYSpec#(body%)
posZ# = pxWheelGetPositionZSpec#(body%)
rotX# = pxWheelGetRotationPitchSpec(body%)
rotY# = pxWheelGetRotationYawSpec(body%)
rotZ# = pxWheelGetRotationRollSpec(body%)
xPositionEntity mesh, posX,posY,posZ
xRotateEntity mesh, rotX,rotY,rotZ
End Function
помогите если знаете...
за рание спасибо =)
Последний раз редактировалось SBJoker, 08.01.2009 в 01:02.
|