Тема: Physx & Xors3d
Показать сообщение отдельно
Старый 16.10.2008, 21:46   #1
rustem
AnyKey`щик
 
Регистрация: 02.10.2008
Адрес: Казахстан, Павлодар
Сообщений: 6
Написано 0 полезных сообщений
(для 0 пользователей)
Physx & Xors3d

Хотелось бы узнать, создаю мир в Ксорсе и тут же физический
Имеется тачка и мирок маленький, все удачно грузится.
С помощью сэмпла создаю им ригид боди, ставлю гравитацию но ничего не меняется, посмотрите, откомментироуйте, плиз

Самое главное во всем этом. выдает ошибку Memory access violation - на строке присвоения позиции меша к ригид боди pxDX9BodySetEntity (city,city_body)

Include "b3d_dx9.bb"

xgraphics3d 1024,768,32,0

pxCreateWorld(0,"key")
pxSetGravity 0,-70,0

cam = xcreatecamera()
light = xcreatelight(spot)
xpositionentity cam,90,50,-90

car = xloadmesh("lamb.b3d")
car_phys = xloadmesh("lamb_phys.b3d")
car_body = bodycreatehull(car_phys,100)
xEntityAlpha car_phys,0.5

city = xloadmesh("plane.b3d")
city_phys = xloadmesh("plane.b3d")
city_body = bodycreatehull(city_phys,0)
pxDX9BodySetEntity (city,city_body)

While Not xKeyHit(key_escape)
xPointEntity cam,car

pxRenderPhysic 60,0
pxDX9BodySetEntity(car, car_body)
xupdateworld
xrenderworld
xtext 10,10,xGetFPS
xFlip
Wend

End


Function BodyCreateHull%(mesh%, mass)

Local nsurf = xCountSurfaces(mesh)
Local nvert = 0
For ns = 1 To nsurf
Local surf = xGetSurface(mesh,ns)
nvert = nvert + xCountVertices(surf)
Next
vbank = CreateBank(nvert*4*3)
nv = 0

For ns = 1 To nsurf
surf = xGetSurface(mesh,ns)
nvv = xCountVertices(surf)
For nvc = 0 To nvv - 1
PokeFloat vbank,nv*12+0,VertexX(surf,nvc)
PokeFloat vbank,nv*12+4,VertexY(surf,nvc)
PokeFloat vbank,nv*12+8,VertexZ(surf,nvc)
nv = nv+1
Next
Next
Local bbb%= pxBodyCreateHull(vbank, nvert, mass)
FreeBank vbank
Return bbb
End Function
(Offline)
 
Ответить с цитированием