之前可能已经提出过这个问题,但我开始在Android上进行游戏编程。我很难找到移动物体的最佳方法。
简单地说,假设我有一个位于0,0的位图,我想在屏幕上移动它。显而易见的方法是每次调用Surface View onDraw方法时简单地将X位置递增1。
但是,如果我想让它更快地移动呢?我可以将它增加两个或三个而不是一个,但随后运动开始变得非常不稳定和愚蠢。
这样做的最佳方式是什么?
答案 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
一些要检查的网站
答案 1 :(得分:0)
你可以增加X和Y位置并添加一个thread.sleep()调用并循环它。
setX(X++);
setY(Y);
try {
MThread.sleep(10);
}
catch (InterruptedException e) {
}