|
Xors3D Графический движок с поддержкой DirectX9 |
08.01.2009, 00:10
|
#1
|
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.
|
(Offline)
|
|
08.01.2009, 00:34
|
#2
|
злобный флудер
Регистрация: 10.07.2007
Сообщений: 2,585
Написано 789 полезных сообщений (для 1,476 пользователей)
|
Re: Xors3D + PhysX Проблема
не используй этот глючный отстой, здоровее будешь (я про ксорс)...
|
(Offline)
|
|
08.01.2009, 04:30
|
#3
|
Гигант индустрии
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений (для 4,437 пользователей)
|
Ответ: Xors3D + PhysX Проблема
А стены у тебя физобъекты ?
еще: устрой модели уровня в максе перед экспортом резет Хформ
__________________
|
(Offline)
|
|
08.01.2009, 09:43
|
#4
|
AnyKey`щик
Регистрация: 11.12.2007
Сообщений: 18
Написано одно полезное сообщение (для 0 участников)
|
Ответ: Xors3D + PhysX Проблема
NitE Аче Xors так уж плох ?
tormoz мона поподробней? я с максом не очень дружу
|
(Offline)
|
|
08.01.2009, 11:18
|
#5
|
Бывалый
Регистрация: 20.11.2007
Сообщений: 663
Написано 145 полезных сообщений (для 176 пользователей)
|
Ответ: Xors3D + PhysX Проблема
Сообщение от Townboy
NitE Аче Xors так уж плох ?
tormoz мона поподробней? я с максом не очень дружу
|
1)Xors не плох, просто таварищу NitE, не дали ключик от него, вот он ИМХО и злится.
2)Выдели все объекты потом справо на боковой панели выбери "Hierarchy"->"Affect Pivot Only" потом ниже "Center to Object" и потом ниже во вкладке "Adjust Transform" нажми "Transform"
|
(Offline)
|
|
08.01.2009, 11:31
|
#6
|
AnyKey`щик
Регистрация: 11.12.2007
Сообщений: 18
Написано одно полезное сообщение (для 0 участников)
|
Ответ: Xors3D + PhysX Проблема
хех не фурычит все сделал как сказал.. может выложишь че нить ну там плоскость + пару стенок... а то может я че нитак делаю
|
(Offline)
|
|
08.01.2009, 12:30
|
#7
|
Легенда
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений (для 568 пользователей)
|
Ответ: Xors3D + PhysX Проблема
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
08.01.2009, 15:24
|
#9
|
Терабайт исходников
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений (для 6,051 пользователей)
|
Ответ: Xors3D + PhysX Проблема
pxSetDX9Entity или щото типа того есть в коде?
с некоторых версий ксорса не рабит.
используй прямую установку мешей в коорды боди и наоборот.
|
(Offline)
|
|
08.01.2009, 15:38
|
#10
|
AnyKey`щик
Регистрация: 11.12.2007
Сообщений: 18
Написано одно полезное сообщение (для 0 участников)
|
Ответ: Xors3D + PhysX Проблема
pxDX9BodySetEntity есть а pxSetDX9Entity нету
Xors version 1.1
используй прямую установку мешей в коорды боди и наоборот...
мона поподробней ?
|
(Offline)
|
|
08.01.2009, 16:50
|
#11
|
злобный флудер
Регистрация: 10.07.2007
Сообщений: 2,585
Написано 789 полезных сообщений (для 1,476 пользователей)
|
Re: Xors3D + PhysX Проблема
xpostionentity carmesh,pxbodygetentityx(carphys)... и т.д.
newman, неверное имхо, как я уже кое-где писал - убрать проверку ключа дело на 20 мин... просто меня ещё раньше АВТОМАТ предупреждал что это отстой глючный, я скачал офф. примеры и он ниодин не запустил - в каждом разные ошибки - после такого даже разбиратся нехочется в чем дело... ктомуже на офф. сайте ясно написано что Beta а значит тока для мазохистов которым нравится не игру делать а чужие ошибки править...
|
(Offline)
|
|
08.01.2009, 17:18
|
#12
|
AnyKey`щик
Регистрация: 11.12.2007
Сообщений: 18
Написано одно полезное сообщение (для 0 участников)
|
Ответ: Xors3D + PhysX Проблема
Ну с чемто я согласен но всёже в Xorse есть плюсы подержка DirectX 9
конешно как выйдет финал будет лутше
но всеже чето я непонимаю в Blitz3D я юзал вот это
Function CreateTriMesh(inmesh%)
outmmesh=CreateMesh()
outsurf=CreateSurface(outmmesh)
outvc=0
For sc=1 To CountSurfaces(inmesh)
insurf=GetSurface(inmesh,sc)
For vc=0 To CountVertices(insurf)-1
NewV=AddVertex(outsurf,VertexX(insurf,vc),VertexY(insurf,vc),VertexZ(insurf,vc))
Next
For tc=0 To CountTriangles(insurf)-1
AddTriangle(outsurf,outvc+TriangleVertex(insurf,tc,0),outvc+TriangleVertex(insurf,tc,1),outvc+TriangleVertex(insurf,tc,2))
Next
outvc=outvc+CountVertices(insurf)
Next
UpdateNormals outmmesh
nsurf = CountSurfaces(outmmesh )
nvert = 0
nface=0
For ns = 1 To nsurf
Local surf = GetSurface(outmmesh ,ns)
nface = nface+CountTriangles(surf)
nvert = nvert +CountVertices(surf)
Next
fbank = CreateBank(nface*4*3)
nf = 0
vbank = CreateBank(nvert*4*3)
nv = 0
For ns = 1 To nsurf
surf = GetSurface(outmmesh,ns)
nfv = CountTriangles(surf)
For nfc = 0 To nfv -1
PokeInt fbank,nf*12+0,TriangleVertex(surf,nfc,0)
PokeInt fbank,nf*12+4,TriangleVertex(surf,nfc,1)
PokeInt fbank,nf*12+8,TriangleVertex(surf,nfc,2)
nf=nf+1
Next
nvv = CountVertices(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
bbb%=pxCreateTriMesh(vbank, fbank, nvert, nface,0)
FreeBank vbank
FreeBank fbank
FreeEntity outmmesh
Return bbb%
End Function
а в Xors вот это по идее, это замена выше написано
VB = xGetMeshVB(Entity%)
VB_size = xGetMeshVBSize(Entity%)
IB = xGetMeshIB(Entity%)
IB_size=xGetMeshIBSize(Entity%)
in_mesh=pxCreateTriMesh(VB, IB, VB_size, IB_size, 0)
вот не могу понять причем здесь сцена
Последний раз редактировалось SBJoker, 08.01.2009 в 17:55.
|
(Offline)
|
|
08.01.2009, 17:19
|
#13
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,742
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Ответ: Re: Xors3D + PhysX Проблема
Сообщение от NitE
просто меня ещё раньше АВТОМАТ предупреждал что это отстой глючный
|
Ну скажем так я выражался не столь грубо
Моё личное мнение о нём: для автомобильной аркады с тенями и бампом вполне годится, а РПГ я писать на нём не рискнул.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
|
(Offline)
|
|
08.01.2009, 17:23
|
#14
|
AnyKey`щик
Регистрация: 11.12.2007
Сообщений: 18
Написано одно полезное сообщение (для 0 участников)
|
Ответ: Xors3D + PhysX Проблема
вот я чтото типо аркады на авто и хачу чисто для себя..
я раньше не занимался такам ну всеже хочется научится хотябы первоначяльные знания
|
(Offline)
|
|
08.01.2009, 19:42
|
#15
|
Гигант индустрии
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений (для 4,437 пользователей)
|
Ответ: Xors3D + PhysX Проблема
У меня с физикой никаких проблем
в том числе и на автоаркаде
проблемы есть с парентами
__________________
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 09:48.
|