Android 如何在设定的时间内将游戏对象从屏幕的一侧移动到另一侧?
假设我想制作一个屏幕上有一个简单对象的android游戏。该对象以x=0开始,并在屏幕的x=右侧结束 让我们也假设我们生活在一个完美的世界里,每台设备都以每秒30帧的速度运行。我当然可以使用下面的代码片段从“0”点到“屏幕右侧”,但由于碎片的存在,在每个设备上花费的时间肯定是可变的Android 如何在设定的时间内将游戏对象从屏幕的一侧移动到另一侧?,android,coordinates,Android,Coordinates,假设我想制作一个屏幕上有一个简单对象的android游戏。该对象以x=0开始,并在屏幕的x=右侧结束 让我们也假设我们生活在一个完美的世界里,每台设备都以每秒30帧的速度运行。我当然可以使用下面的代码片段从“0”点到“屏幕右侧”,但由于碎片的存在,在每个设备上花费的时间肯定是可变的 while(x < rightSideOfScreen) x++; while(x
while(x < rightSideOfScreen)
x++;
while(x<屏幕右侧)
x++;
我知道的唯一坐标系是android.graphics.Point,这是我目前在游戏中使用的坐标系
使用插值,我想:
targetX = rightSideOfScreen;
x += (targetX - x) * 0.08f * delta * FPS;
使用0.08f值进行播放
你所说的“完美世界”用在我上面的例子中。通过将移动与render()方法中传递的增量相乘,可以确保它在所有设备上运行相同。您需要记住起始点的时间戳,然后在每个
onDraw
中根据当前时间和视图宽度计算x坐标。例如,在我的设备上,onDraw每12-20毫秒调用一次,与60帧每秒(而不是30帧每秒)的速度更相关
targetX = rightSideOfScreen;
x += (targetX - x) * 0.08f * delta * FPS;