我有一个应用程序,其中我有恒定的int速度= 5;在每次更新时,游戏对象(玩家)向前移动5px。问题是,我无法在不同设备上处理 - 旧设备正在使用fx。 20fps(每秒20次更新),另一次有60fps。然后,我的物体移动得比它应该更快或更慢。
我尝试了一些屏幕宽度划分,但没有设法使用它。
答案 0 :(得分:3)
你解决问题的方式并不是最好的,例如,android可以运行在许多不同类型的设备上,所有设备都有不同的屏幕尺寸,这就是为什么你必须考虑您的游戏呈现的每秒帧数,此值不是常数,可能会因设备,正在运行的进程等而有所不同...使用此信息和screen_width可以准确计算每个像素数第二次必须移动图像才能生成与屏幕尺寸无关的相同速度效果... 许多游戏框架如 libgdx 可以检索此信息(名称为" delta"作为2个连续帧之间的时间差异)。 让我们用一个例子来分解它: 考虑下面图片中的平板电脑,您的游戏需要翻译蓝点,在一秒内形成左侧到右侧。 因此,解决方案完全取决于表格大小和平板电脑功能。
如果您的平板电脑假设宽度为100并且每秒渲染10帧,这意味着您的void
方法将被调用每秒10次,因此蓝点可以增加其位置每个渲染帧10个像素的速率,以便在 1秒中从左侧转换为高度,如果增量发生变化,无论原因如何,那么速度将是相同的。
现在我希望通过这些信息,您可以获得开发游戏所需的信息。