scarm
15.01.2012, 21:43
Игровое поле - "Шахматная" матрица. На поле рандомно стоят враги, из героя вылетает пуля.
Пуля двигается по таймеру с delay = 50, пуль на поле может быть несколько, до 10-20, поэтому, важна производительность.
Стоит задача обнаружить столкновение пули с врагом.
Передо мной сейчас два варианта решения:
Просчитать координаты пули, сравнить с координатами врагов, при попадании профит. Минус - можно просчитать только координаты клетки, в которой сидит злодей, а его размеры могут быть меньше. С другой стороны, при тайминге в 50мс, это не критично.
Отслеживать кто на данный момент лежит под пулей через
gameField.getObjectsUnderPoint(new Point(bullet[i].x, bullet[i].y));
В п.2 прибавляется трата ресурсов на отфильтровку от мусора полученного массива, т.к. внизу всегда находится 5-6 объектов
Собственно, вопрос, какой из этих вариантов будет производительнее?
Заранее спасибо.
Пуля двигается по таймеру с delay = 50, пуль на поле может быть несколько, до 10-20, поэтому, важна производительность.
Стоит задача обнаружить столкновение пули с врагом.
Передо мной сейчас два варианта решения:
Просчитать координаты пули, сравнить с координатами врагов, при попадании профит. Минус - можно просчитать только координаты клетки, в которой сидит злодей, а его размеры могут быть меньше. С другой стороны, при тайминге в 50мс, это не критично.
Отслеживать кто на данный момент лежит под пулей через
gameField.getObjectsUnderPoint(new Point(bullet[i].x, bullet[i].y));
В п.2 прибавляется трата ресурсов на отфильтровку от мусора полученного массива, т.к. внизу всегда находится 5-6 объектов
Собственно, вопрос, какой из этих вариантов будет производительнее?
Заранее спасибо.