游戏编程中的运动

时间:2010-06-07 17:49:30

标签: android

之前可能已经提出过这个问题,但我开始在Android上进行游戏编程。我很难找到移动物体的最佳方法。

简单地说,假设我有一个位于0,0的位图,我想在屏幕上移动它。显而易见的方法是每次调用Surface View onDraw方法时简单地将X位置递增1。

但是,如果我想让它更快地移动呢?我可以将它增加两个或三个而不是一个,但随后运动开始变得非常不稳定和愚蠢。

这样做的最佳方式是什么?

2 个答案:

答案 0 :(得分:3)

了解一下矢量。 http://chortle.ccsu.edu/VectorLessons/vectorIndex.html

通常通过将按时间增量缩放的矢量添加到当前位置来计算移动。 (数学谈话让简单的事情变得如此复杂)。

基本上: new_Pos = old_Pos + mov_Vec * time_delta

因此,通过更改mov_Vec,您可以提高/降低速度。

您也可以在x,y上执行此操作 new_x = old_x + mov_x * time_delta

一些要检查的网站

http://gpwiki.org/

http://www.gamedev.net/

http://www.devmaster.net/

答案 1 :(得分:0)

你可以增加X和Y位置并添加一个thread.sleep()调用并循环它。

setX(X++);
setY(Y);
try {
    MThread.sleep(10);
    }
catch (InterruptedException e) {
}