java - 不同设备上的游戏速度不一样

标签 java android

我有一个应用程序,其中我有恒定的 int speed = 5;每次更新时,游戏对象(玩家)都会向前移动 5 像素。问题是,我无法在不同的设备上处理这个问题 - 旧设备有 fx。 20fps(即每秒更新 20 次),另一台则为 60fps。然后,我的物体移动得比应有的更快或更慢。

我尝试了一些屏幕宽度划分,但没有成功。

最佳答案

您解决问题的方式并不是最好的方式,例如,android可以在许多不同类型的设备上运行,所有设备都有不同的屏幕尺寸,这就是您必须考虑的原因您的游戏每秒渲染多少帧,该值不是常量,可能会根据设备、运行的进程等而变化...利用此信息和 screen_width,您可以准确计算每帧有多少像素其次,必须移动图像才能产生与屏幕尺寸无关的相同速度效果...... 许多游戏框架(例如 libgdx)可以检索此信息(将其命名为“delta”,作为两个连续帧之间的时间差)。 让我们用一个例子来分解它: 考虑下图中的平板电脑,您的游戏需要在一秒钟内将蓝点从左向右平移。 因此,这个问题的解决方案完全取决于 table 的大小和平板电脑的功能。

如果您的平板电脑假设宽度为 100,每秒渲染 10 帧,这意味着您的 onDraw 方法将每秒被调用 10 次,因此蓝点可以增加其以每渲染帧 10 像素的速率定位,以便在 1 秒内从左平移到右,如果增量发生变化,无论为什么,那么速度将是相同的。

enter image description here

现在我希望通过这些信息您可以获得开发游戏所需的信息。

关于java - 不同设备上的游戏速度不一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33836852/

相关文章:

java - 无法启动第二个 Activity ( list 问题)

android - 在android应用程序中显示cpu,内存信息

android - JNI C++ 调用 onCreate JAVA - Facebook

c# - 接口(interface)的 C# "explicit implementation"是否存在于 Java 中?

java - 如何使用java在文本文件中的特定列/索引上写入数据

java - 同步 2 个复杂对象图状态的最佳方法是什么

java - 如何使用 Web 服务从 JIRA 获取详细信息

java - 无法在 Android 的 Assets 文件夹中检索文件

java - 窗口 View 泄露

android - 在android中为不同的群体设置不同的指标