Движение в игровом программировании - PullRequest
1 голос
/ 07 июня 2010

Этот вопрос, возможно, задавался раньше, но я начинаю изучать программирование игр на Android. Мне трудно найти лучший способ перемещения объекта.

Проще говоря, допустим, у меня есть растровое изображение, расположенное на 0,0, и я хочу переместить его по экрану. Очевидный способ сделать это - просто увеличивать позицию X на единицу каждый раз, когда вызывается метод onDraw Surface View.

Но что, если я хочу заставить его двигаться быстрее? Я мог бы увеличить его на два или три вместо одного, но тогда движение начинает становиться действительно изменчивым и глупым.

Каков наилучший способ сделать это?

Ответы [ 2 ]

3 голосов
/ 07 июня 2010

Узнайте немного о векторах. http://chortle.ccsu.edu/VectorLessons/vectorIndex.html

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

В основном: new_Pos = old_Pos + mov_Vec * time_delta

Таким образом, изменяя mov_Vec, вы можете увеличить / уменьшить скорость.

Вы также можете сделать это на х, у new_x = old_x + mov_x * time_delta

Некоторые сайты, чтобы проверить

http://gpwiki.org/

http://www.gamedev.net/

http://www.devmaster.net/

0 голосов
/ 30 марта 2011

Вы можете увеличить позиции X и Y, добавить вызов thread.sleep () и зациклить его.

setX(X++);
setY(Y);
try {
    MThread.sleep(10);
    }
catch (InterruptedException e) {
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...