![](images/chestnut/misc/left.gif) |
20.10.2013, 17:39
|
#1
|
Элита
Регистрация: 21.01.2010
Адрес: Россия, Рязанская область, г.Михайлов
Сообщений: 2,067
Написано 1,185 полезных сообщений (для 2,828 пользователей)
|
Неработоспособность лучей PhysX Wrapper'а
Добрый день, Булчане!
Собственно появилась какая то ну совсем непонятная проблема, из за которой я не могу развивать один свой проектик (Doom2d: Remake, если кто помнит).
Вообщем ситуация следующая:
- имеем уровень (состоит из стастаческих стен (физический кубов), каждая стена имеет имя "wall");
- имеем туеву хучу монстров, которые разбросаны по уровню и ходят (когда активны) утыкаясь в эти стены, проверка на тычОк происходит путём pxRayGetBody (соответственно у каждого монстра есть свой луч pxCreateRay() )
Так вот, когда на карте одновременно активных (не разбуженых игроком) монстров мало, то они хорошо своими лучами отлавливают wall'ы, разворачиваются/прыгают/идут_по_своим_делам_дальше. А если активированы все монстры, то ни один луч в игре не работает (а на этих лучах завязано всё - стрельба, ИИ, кнопки, подбирание предметов и т.д.). При этом вся физика как работала, так и работает (ну разве что ещё физические триггеры тоже отказываются работать). Ошибок никаких нигде не выдаётся.
В связи с этим вопрос - что за нах?
У кого нибудь такая ситуация была?
Очень бы не хотелось менять физическую библиотеку, так уж прикипел я к PhysX Wrapper'у за годы использования ![Mad](images/smilies/mad.gif)
__________________
Main PC:
Intel Core i5 4260U 1.44 GHz + LPDDR3 1x4096 1600 MHz + Intel HD Graphics 5000.
Asus Ёжик T101-MT:
Intel Atom N-570 1.66 Ghz + DDR2 2x1024 800 Mhz + Intel GMA 3150 128 Mb DDR2
Скачать Doom 2D: Remake v0.3.8a
|
(Offline)
|
|
21.10.2013, 14:52
|
#2
|
Принтер
Регистрация: 21.04.2013
Адрес: Больше не РФ
Сообщений: 569
Написано 342 полезных сообщений (для 1,242 пользователей)
|
Ответ: Неработоспособность лучей PhysX Wrapper'а
К сожалению, я хочу тебя огорчить. Пфизикс не поддерживается уже который год, и багфикса не будет. Это первое. Второе: Ты, скорее всего, не сможешь пофиксить этот баг сам - для этого тебе придется поговорить с такими, как ABTOMAT, tormoz или др. и не факт что помогут.
Третье: хочешь обойти баг: переходи на буллет. Самая лучшая физ библа на блитц, которую я знаю. Хотя она и несколько сложнее пфизикса.
ИМХО
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
21.10.2013, 15:14
|
#3
|
Элита
Регистрация: 21.01.2010
Адрес: Россия, Рязанская область, г.Михайлов
Сообщений: 2,067
Написано 1,185 полезных сообщений (для 2,828 пользователей)
|
Ответ: Неработоспособность лучей PhysX Wrapper'а
Да ты кэп
Физикс-враппером я пользуюсь с самого его изобретения Render'ом, и то что он давно не поддерживается, как и то, что уже давным давно открыты его сурсы - я в курсе. Это во-первых.
Во-вторых - как бы сам являюсь далеко продвинутым пользователем враппера (ну не как Автомат и tormoz конечно, но всё же).
В-третьих - буллет-враппер очень хорош, я с ним тоже игрался довольно долго, и ничего сложного в нём не увидел. Но, попробуй представь, что значит сменить физическую библиотеку в развитом проекте? А это трындец. Потому что многие функции одной библиотеки работают совершенно не так, как в другой.
Хотя я и попробовал сходу переписать на буллет отдельные части проекта для тестов (потому что первой мыслью как раз и был переход на булет) - не понравился результат из за вышеупомянутой причины. Хотя я не спорю, что если посидеть подольше, то всё будет пучком. И не отрицаю, что, возможно, я переведу проект на буллет в будущем. Очень мне нравится Debug в этом враппере, он просто шикарен.
Ну и кстати, я нашёл причину ошибки - она происходит когда монстры упираются своими лучами в триггеры/воду, и причём это зависит именно он количества активных монстров. Хз почему так, но факт есть факт - поменял врапперные воду и триггеры на самопальные, и всё заработало. Странно, вообщем.
__________________
Main PC:
Intel Core i5 4260U 1.44 GHz + LPDDR3 1x4096 1600 MHz + Intel HD Graphics 5000.
Asus Ёжик T101-MT:
Intel Atom N-570 1.66 Ghz + DDR2 2x1024 800 Mhz + Intel GMA 3150 128 Mb DDR2
Скачать Doom 2D: Remake v0.3.8a
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
21.10.2013, 16:02
|
#4
|
Бывалый
Регистрация: 22.08.2006
Сообщений: 700
Написано 146 полезных сообщений (для 267 пользователей)
|
Ответ: Неработоспособность лучей PhysX Wrapper'а
Сообщение от XoreX
такими, как ABTOMAT, tormoz или др.
|
lol wut
По сабжу, переходи на что-то посерьезнее блитца. Тогда можно и физдвижок не менять.
|
(Offline)
|
|
21.10.2013, 22:58
|
#5
|
Бывалый
Регистрация: 23.11.2011
Сообщений: 863
Написано 334 полезных сообщений (для 866 пользователей)
|
Ответ: Неработоспособность лучей PhysX Wrapper'а
глупый вопрос , а как удалить луч ?
функции типа pxdeleteray нет
|
(Offline)
|
|
21.10.2013, 23:09
|
#6
|
Элита
Регистрация: 21.01.2010
Адрес: Россия, Рязанская область, г.Михайлов
Сообщений: 2,067
Написано 1,185 полезных сообщений (для 2,828 пользователей)
|
Ответ: Неработоспособность лучей PhysX Wrapper'а
А никак, её и нету. Вся надежда на удаление всего физического - pxDestroyWorld и ручное обнуление переменных.
__________________
Main PC:
Intel Core i5 4260U 1.44 GHz + LPDDR3 1x4096 1600 MHz + Intel HD Graphics 5000.
Asus Ёжик T101-MT:
Intel Atom N-570 1.66 Ghz + DDR2 2x1024 800 Mhz + Intel GMA 3150 128 Mb DDR2
Скачать Doom 2D: Remake v0.3.8a
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
21.10.2013, 23:38
|
#7
|
Бывалый
Регистрация: 23.11.2011
Сообщений: 863
Написано 334 полезных сообщений (для 866 пользователей)
|
Ответ: Неработоспособность лучей PhysX Wrapper'а
кстати как от камеры до потолка лучем дистанцию считать ?
(что бы игрок в ползке не появлялся головой в потолке при отжимание контрола
делаю так
pxRaySetPosition(rayx,plx#,ply#,plz#)
pxRaySetDir(rayx,0,1,0)
DebugLog pxRayGetDistance#(rayx,10)
но дистанция считается до стены а не до потолка
|
(Offline)
|
|
22.10.2013, 10:15
|
#8
|
Элита
Регистрация: 21.01.2010
Адрес: Россия, Рязанская область, г.Михайлов
Сообщений: 2,067
Написано 1,185 полезных сообщений (для 2,828 пользователей)
|
Ответ: Неработоспособность лучей PhysX Wrapper'а
Сообщение от tirarex
кстати как от камеры до потолка лучем дистанцию считать ?
(что бы игрок в ползке не появлялся головой в потолке при отжимание контрола
делаю так
pxRaySetPosition(rayx,plx#,ply#,plz#)
pxRaySetDir(rayx,0,1,0)
DebugLog pxRayGetDistance#(rayx,10)
но дистанция считается до стены а не до потолка
|
Ну с направлением луча правильно вроде бы, а вот pxRayGetDistance#(rayx,10) меня смущает что то. Емнип эта функция вторым параметром принимает тип пиканья, т.е. 0 - пикает статику и динамику, 1 - только динамику, 2 - только статику. Ну и дистанцию немного по другому я считаю:
Function pxGetDistance#(x1, y1, z1, x2, y2, z2)
return SQR((x2-x1)^2+(y2-y1)^2+(z2-z1)^2)
End Function
первыми параметрами пихаешь позицию игрока, вторыми - pxRayGetPickX/Y/Z с нужным параметром пиканья (0-2). Хотя это может быть и лишнее, не помню почему я на такой велосипед пересел со стандартного pxRayGetDistance.
__________________
Main PC:
Intel Core i5 4260U 1.44 GHz + LPDDR3 1x4096 1600 MHz + Intel HD Graphics 5000.
Asus Ёжик T101-MT:
Intel Atom N-570 1.66 Ghz + DDR2 2x1024 800 Mhz + Intel GMA 3150 128 Mb DDR2
Скачать Doom 2D: Remake v0.3.8a
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
19.03.2015, 17:38
|
#9
|
Мастер
Регистрация: 24.06.2009
Адрес: Набережные Челны
Сообщений: 930
Написано 292 полезных сообщений (для 504 пользователей)
|
Ответ: Неработоспособность лучей PhysX Wrapper'а
Эта функция должна выглядеть так
Function pxGetDistance#(x1#, y1#, z1#, x2#, y2#, z2#)
Return Sqr((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)+(z2-z1)*(z2-z1))
End Function
|
Тоже перейду на вручное вычисление, чем встроенное.
А то в некоторых местах луч проскакивает и не замечает поверхности.
Хотя, предстоит ещё определить какое тело попало под луч, если луч иногда промахивается.
Луч всё равно в некоторых местах промахивается...
или я недопонимаю pxRaySetDir
Разобрался с pxRauSetDir с http://forum.boolean.name/showthread.php?p=264086
Последний раз редактировалось LLI.T.A.L.K.E.R., 19.03.2015 в 20:02.
|
(Offline)
|
|
20.03.2015, 22:32
|
#10
|
Разработчик
Регистрация: 06.06.2011
Адрес: Ирк. обл.
Сообщений: 541
Написано 133 полезных сообщений (для 220 пользователей)
|
Ответ: Неработоспособность лучей PhysX Wrapper'а
Что то долго ты разбирался ![:)](images/smilies/smile.gif)
__________________
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 14:52.
|