Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как быстрее обнаружить столкновение? (http://www.flasher.ru/forum/showthread.php?t=173992)

scarm 15.01.2012 21:43

Как быстрее обнаружить столкновение?
 
Игровое поле - "Шахматная" матрица. На поле рандомно стоят враги, из героя вылетает пуля.
Пуля двигается по таймеру с delay = 50, пуль на поле может быть несколько, до 10-20, поэтому, важна производительность.
Стоит задача обнаружить столкновение пули с врагом.
Передо мной сейчас два варианта решения:
  1. Просчитать координаты пули, сравнить с координатами врагов, при попадании профит. Минус - можно просчитать только координаты клетки, в которой сидит злодей, а его размеры могут быть меньше. С другой стороны, при тайминге в 50мс, это не критично.
  2. Отслеживать кто на данный момент лежит под пулей через
Код AS3:

gameField.getObjectsUnderPoint(new Point(bullet[i].x, bullet[i].y));

В п.2 прибавляется трата ресурсов на отфильтровку от мусора полученного массива, т.к. внизу всегда находится 5-6 объектов

Собственно, вопрос, какой из этих вариантов будет производительнее?
Заранее спасибо.

Vektor 15.01.2012 22:05

Цитата:

Пуля двигается по таймеру с delay = 50, пуль на поле может быть несколько, до 10-20, поэтому, важна производительность.
Я не понял, 10-20 это что много, по-моему, мы из каменного века, вроде вышли или я неправ.

scarm 15.01.2012 22:18

Честно говоря, не знаю))) меня смущает не столько количество, сколько то, что все просчеты должны проделываться каждую итерацию, т.е. 50мс. При тестовом рендере запускал пули с каждого края доски по 6 штук (итого 6*4=24). Пули просто перемещались без обсчета столкновений. На моем стареньком ноутбуке (1гиг оперативки + винXP) заметно ощущалось торможение. Если добавить расчеты, то не факт, что вышли из каменного века

Vektor 15.01.2012 22:32

Процессор в основном нагружает, графика, а ваши расчеты он проглотит и даже не поперхнется, вот если бы счёт шёл на сотни или даже на тысячи, вот тогда можно было бы подумать об оптимизации.

scarm 15.01.2012 22:35

Кстати да, анимации там порядочно. Ок, спасибо, буду дальше ехать)


Часовой пояс GMT +4, время: 18:31.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.