Среда, 27 Ноября 2024, 15:28

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Проблема со столкновениями при самописном движении
Cx4Дата: Суббота, 10 Ноября 2018, 13:28 | Сообщение # 1
почетный гость
Сейчас нет на сайте
Всем привет. В общем, понадобилось мне сделать быстрые пули. Для этого прописал им своё движение в Step:
Код
repeat(spd)
{
x+=lengthdir_x(1,direction);
y+=lengthdir_y(1,direction);

ID=collision_point(x,y,o_enemy,1,1);
if ID
{
  event_perform(ev_collision,ID);
  exit;
}
}

И всё работает нормально, если враг стоит на месте или движется навстречу пуле. Если же пуля догоняет движущегося врага сзади, то она "приклеивается" к его спине и движется с его скоростью. Т.е. exit срабатывает, а event_perform(ev_collision,ID) нет. Что можно сделать в такой ситуации?
Из вариантов рассматривал:
1. Добавить перед вызовом столкновения x=ID.x; y=ID.y; - работает, но при этом частицы уничтоженной пули создаются не в точке столкновения;
2. Убрать exit - работает, но не будет ли при этом много лишних вызовов событий, не пострадает ли оптимизация?
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг