![]() |
Контакты в 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. |
Ответ: Контакты в PhisX
у тебя не плоскость, у тебя куб.
|
Ответ: Контакты в PhisX
А какая разница куб или плоскость?
все равно у сферы должна быть одна точка соприкосновения с обьектом... |
Ответ: Контакты в PhisX
С контактами у физикса беда бывает да.
Визуализируй что ли контакты да посмотри где они находятся. |
Ответ: Контакты в PhisX
Визуализировать не получается:(
когда я в цикле пытаюсь перебрать все контакты вылетает mav такой код.. For i=0 To pxGetContacts(pxplayer)-1 kont#=pxContactGetPointY#(pxplayer,i) Next ругается как раз на переменную i. если поставить вместо i цифру например 1mav не вылетает... pxGetContacts неправильно возвращает количество контактов... наверное ошибка где то у меня в коде,так как в семпле GetContakt все работает... никак не могу понять где я ошибся.:( |
Ответ: Контакты в PhisX
Я попробовал что то сделать, pxRenderPhysic(5,0) заменил на
pxRenderPhysic(30,0). Количество контактов стало 2 =) Поставил pxRenderPhysic(60,0), количество контактов стало 1 =) Весело. Но зато работает код Код:
For i=0 To pxGetContacts(pxplayer)-1 З.Ы. Забыл твой код проверить сразу целиком... На этом коде не выдаёт ошибку никак вобще у меня. Хоть при 5, хоть при 30, хоть при 60. У меня твой код работает полностью и безошибочно |
Ответ: Контакты в PhisX
Да действительно при pxRenderPhysic(60,0) количество контактов определяется правильно.Только вот все обьекты двигаются очень медленно (при FPS=60)...не реалистично.
Не подскажите как синхронизировать FPS и физику что бы физика просчитывалась правдоподобно? |
Ответ: Контакты в PhisX
Ну я лично использую pxRenderPhysic(30,0), выглядит довольно реалистично.
На счёт синхронизации - посмотри в примере Castle (стандартно идёт с блитцем) |
Ответ: Контакты в PhisX
Спасибо за помощь. Будем разбираться.:)
|
Часовой пояс GMT +4, время: 10:46. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot