Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.02.20;
Скачать: CL | DM;

Вниз

DelphiX, движение пули   Найти похожие ветки 

 
ballack   (2004-11-02 03:39) [0]

Столкнулся с такой проблемой. Есть карта, представленная двумерным массивом, состоящая из стен и т.п. Есть летящая пуля, перемещение которой в DoMove рассчитывается примерно таким способом: x := x + FSpeed * 0.1 * MoveCount. На каждом шаге проверяется, есть ли столкновение со стеной. Когда в игре падает FPS, значение MoveCount увеличивается и за один шаг пуля пролетает большее расстояние. Т.е. иногда получается, что пуля может пролететь через стену, не задев. Как этого избежать?


 
Slmer   (2004-11-21 21:53) [1]

Пуля летит по прямой, да? :)
Вот и найди первое пересечение этой самой прямой со стеной.


 
Malefic ©   (2004-11-22 11:01) [2]

Ты на DelphiX пишешь судя по-всему. Убери переменную MoveCount, так как она только мешает. Если FPS падает, то это всё-равно заметно и увеличением скорости игры тут не поможешь. Вместо нее поставь константу. А вообще переходи на PowerDraw или Asphyre. Я тоже на DelphiX писал сначала, а потом за 3 недели перешел на PD и до сих пор считаю его лучше. Кстати он не сложнее, чем DelphiX.


 
ballack   (2004-11-22 11:28) [3]

Slmer
Пуля у меня летит не мгновенно, а с некоторой скоростью. В какой момент мне проверять первое пересечение со стеной? В момент выстрела? Так пока долетит, стены уже может и не быть на пути.
Malefic ©  
Спасибо за совет, чуть позже возмусь за PD, у меня сейчас уже достаточно много написано под DelphiX, и переделывать неохота.


 
TButton ©   (2004-11-24 21:51) [4]

проверяй пересечение со стеной на отрезке который пуля проходит за один кадр. тогда даже если она летит не по прямой коллизию проверить можно. а на мувкаунт забей однозначно, глупость это беспантовая.



Страницы: 1 вся ветка

Текущий архив: 2005.02.20;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.034 c
14-1107175263
Луарвик
2005-01-31 15:41
2005.02.20
Delphi7 и Delphi8


1-1107156918
vasili
2005-01-31 10:35
2005.02.20
РАБОТА с объектом ActionToolBar, XPColorMap1 и прочим


4-1105004843
Molchanov
2005-01-06 12:47
2005.02.20
Имя модуля, загрузившего DLL


14-1107034236
каспер
2005-01-30 00:30
2005.02.20
пункт меню "создать"


3-1106292623
MAVOR
2005-01-21 10:30
2005.02.20
Подсчёт кол-во записей