2010-12-06 3 views
2

Я пытаюсь создать «справедливую» систему обнаружения столкновений для 2-й спрайт-игры, но я нахожу ее более трудной, чем я ожидал. По «справедливой» я имею в виду, что ни один подвижный объект не получает приоритет перемещения над другим при одном обновлении игры:Ярмарка 2d игровое движение арбитражное столкновение

например. А -> 50px < -В (если б и имеют равные скорости, каждый из них должен двигаться 25pix до столкновения и остановки)

В отличие от жадных алгоритмов, которые могли бы просто переместить первый, а затем отменить Б потому что А уже существует.

2 случая довольно просты в обращении, но я столкнулся с проблемами, когда у меня возникли несколько объектов.

например (только показанные скорости).

 B 
    | 
    |<--C 
A--> v 

Где объекты А, В и С могут быть все разные размеры

В принципе, я ищу идеи о том, как подойти к этой проблеме. Мой нынешний подход стал слишком сложным, и мне интересно обсудить некоторые другие подходы, о которых я не думал.

+1

Вы считаете, что разместили свой вопрос в новом разделе Stack Overflow, http://gamedev.stackexchange.com/? – 2010-12-06 20:41:16

ответ

1

Если вы что-то двигаете, а затем проверяете наличие столкновения, как вы говорите, это никогда не будет справедливым. Так почему бы не переместить все, и при перемещении объекта, если есть столкновение, отметьте его как таковое. Как только вы закончите перемещение всего, вы можете взглянуть на все столкновения и решить, что делать дальше, основываясь на всех из них (например, перемещайте их одинаково далеко, чтобы они больше не сталкивались).

Смежные вопросы