Показать сообщение отдельно
Старый 10.01.2011, 05:16   #1
Halk-DS
Разработчик
 
Аватар для Halk-DS
 
Регистрация: 09.08.2006
Адрес: Украина
Сообщений: 431
Написано 65 полезных сообщений
(для 53 пользователей)
Метод попадания пуль

Главний вопрос, кто может поделится своим опытом и рассказать о самом приемлимом методе, по какому вычисляется попала ли пуля в нужную нам цель?

И одновременно выставляю на критику свою мыслю, которая может пригодится при особых случаях, когда скорость пули больше толщины игрока...
Бегают игроки, они все маленькие размером, и по сравнению со скоростю пуль, метод колизии пули с игроком в некоторых случаях просто безнадежен ибо пуля просто может протлитеть сквозь персонажа и даже его незаметить. Будит ли глючным способом решить ету проблему так:

В каждую пулю вставляем припаренченую к ним камеру
Local TempPivot=CreatePivot()

If EntityDistance(Пуля,Игрок)<5 -Ето условие только для того чтоб лишний раз не юзать CameraPick(), и значение может быть не 5 а любое зависящее примерно от размера игрока, чтоб его пуля случайно не пролетела.
Hit=CameraPick(Камера та что в пуле, центр екрана)-Переверяем есть ли перед нами игрок?
If Hit<>0 PositionEntity TempPivot,PickedX#(),PickedY#(),PickedZ#(),1-Если он есть, ставим в точку попадания пивот, для вычислений.
If EntityDistance(TempPivot,Пуля)<Cкорость пули Then Пуля попала в цель   -Если расстояние до игрока достаточное, убираем игроку хелсы.
EndIf
EndIf

FreeEntity TempPivot
Будет ли ето слишком тормозить систему, если у меня способных стрелять будет максимум 4 игрока?

п.с. Надеюсь я пояснил доступно, если кто нипонял могу нарисовать...
(Offline)
 
Ответить с цитированием