forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Контакты в PhisX (http://forum.boolean.name/showthread.php?t=11815)

Motorboy 29.01.2010 23:44

Контакты в PhisX
 
Есть такой код...

Graphics3D 800,600,32,0
pxCreateWorld(1,"?")
pxSetGravity(0, -10 ,0)

camera=CreateCamera ()
PositionEntity camera,0,100,-400

li=CreateLight ()
PositionEntity li,0,300,0

player=CreateSphere ()
ScaleEntity player,30,30,30

cube=CreateCube ()
ScaleEntity cube,300,1,300
RotateEntity cube,-5,0,-5

pxcube=pxBodyCreateCube(300,1,300,0)
pxBodySetRotation(pxcube,-5,0,-5)

pxPlayer=pxBodyCreateSphere(30,20)
pxBodySetPosition(pxPlayer,0,200,0)

While Not KeyHit(1)

PositionEntity player,pxBodyGetPositionX(pxPlayer),pxBodyGetPosit iony(pxPlayer),pxBodyGetPositionz(pxPlayer)

UpdateWorld
pxRenderPhysic(5,0)
RenderWorld

Text 10,10,pxGetContacts(pxPlayer)

Flip
Wend
End


pxGetContacts(pxPlayer)- возвращает количество контактов 8 хотя должно быть 1.
Подскажите что у меня здесь неправильно.
В семпле который идет вместе с PhisX количество контактов при падении сферы на плосксть равно 1...у меня почему то 8.

NitE 29.01.2010 23:52

Ответ: Контакты в PhisX
 
у тебя не плоскость, у тебя куб.

Motorboy 29.01.2010 23:54

Ответ: Контакты в PhisX
 
А какая разница куб или плоскость?
все равно у сферы должна быть одна точка соприкосновения с обьектом...

ABTOMAT 30.01.2010 02:07

Ответ: Контакты в PhisX
 
С контактами у физикса беда бывает да.
Визуализируй что ли контакты да посмотри где они находятся.

Motorboy 30.01.2010 13:14

Ответ: Контакты в PhisX
 
Визуализировать не получается:(
когда я в цикле пытаюсь перебрать все контакты вылетает mav

такой код..

For i=0 To pxGetContacts(pxplayer)-1
kont#=pxContactGetPointY#(pxplayer,i)
Next

ругается как раз на переменную i. если поставить вместо i цифру например 1mav не вылетает...
pxGetContacts неправильно возвращает количество контактов...
наверное ошибка где то у меня в коде,так как в семпле GetContakt все работает...
никак не могу понять где я ошибся.:(

St_AnGer 30.01.2010 18:13

Ответ: Контакты в PhisX
 
Я попробовал что то сделать, pxRenderPhysic(5,0) заменил на
pxRenderPhysic(30,0). Количество контактов стало 2 =) Поставил
pxRenderPhysic(60,0), количество контактов стало 1 =) Весело.

Но зато работает код
Код:

For i=0 To pxGetContacts(pxplayer)-1
kont#=pxContactGetPointY#(pxplayer,i)
Next

Балуйся =)

З.Ы. Забыл твой код проверить сразу целиком... На этом коде не выдаёт ошибку никак вобще у меня. Хоть при 5, хоть при 30, хоть при 60. У меня твой код работает полностью и безошибочно

Motorboy 30.01.2010 23:53

Ответ: Контакты в PhisX
 
Да действительно при pxRenderPhysic(60,0) количество контактов определяется правильно.Только вот все обьекты двигаются очень медленно (при FPS=60)...не реалистично.
Не подскажите как синхронизировать FPS и физику что бы физика просчитывалась правдоподобно?

St_AnGer 31.01.2010 11:36

Ответ: Контакты в PhisX
 
Ну я лично использую pxRenderPhysic(30,0), выглядит довольно реалистично.
На счёт синхронизации - посмотри в примере Castle (стандартно идёт с блитцем)

Motorboy 31.01.2010 13:16

Ответ: Контакты в PhisX
 
Спасибо за помощь. Будем разбираться.:)


Часовой пояс GMT +4, время: 10:46.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot