анимация с обнаружением столкновений? - PullRequest
3 голосов
/ 16 декабря 2010

У меня проблемы с поиском наилучшего способа настройки анимации с обнаружением столкновений. У меня есть полнофункциональная версия falldown (популярной калькуляторной игры), использующая обработчик и onDraw () для рисования прямоугольников для строк и растрового шара. Тем не менее, эта анимация пропускает (выглядит медленной), и поэтому я пытаюсь переключить анимацию на анимацию анимации.

Мой вопрос концептуальный: как я могу обнаружить столкновения в середине анимации? Я вижу боковую анимацию, которая идет по одному из двух маршрутов: а) Я оживляю очень маленькими шагами. Тем не менее, я думаю, что это будет выглядеть так же плохо, как текущая анимация. б) Я установил анимацию полностью слева или справа от экрана, но каждый шаг анимации проверяет, чтобы мяч не проходил через ряд.

У меня похожая проблема с нисходящим движением мяча. Можно ли постоянно получать доступ / обновлять положение мяча (сохраняемого как целое число), а затем сокращать анимацию, если она сталкивается с чем-то? Можно ли оживить шар вниз, если и только если он не находится над куском ряда? Должен быть какой-то способ обнаружить столкновения внутри анимации, но я не знаю как.

edit: если класс анимации не подходит для игр, как мне оживить мою игру? Как я уже сказал, система handler-ondraw, которую я имею, заставляет мяч пропускать, даже когда я устанавливаю задержку в 1 миллисекунду.

1 Ответ

2 голосов
/ 16 декабря 2010

Один поток для методов рисования холста пользовательского интерфейса и один поток для игровой логики / всего, что не связано с пользовательским интерфейсом.

Один поток обновляет позиции объектов и т. Д., А другой поток пользовательского интерфейса просто рисует их на экране.

В этом поместье ваш игровой логический поток непрерывен и на каждом пути обновляет X, Y позиционирует и обрабатывает такие вещи, как обнаружение столкновений и т. Д. ... Поток отрисовки просто берет эти обновленные позиции X, Y и рисует растровые изображения на холсте.

Вы можете использовать SurfaceView в качестве основы для рисования коллекции растровых изображений / изображений / спрайтов. Вы можете взглянуть на многочисленные примеры игр для Android, предоставленные Google, чтобы быстро и грязно взглянуть на то, как это делается, но в целом это так, как я описал выше.

...