尽管屏幕分辨率,我如何让对象的速度显示相同?

我正在用英特尔XDK开发我的HTML5游戏。 我坚持让所有设备每秒显示相同数量的帧。

第一代iPad的屏幕分辨率为1024像素水平,而摩托罗拉Moto G Android手机水平约为2657像素。 在摩托罗拉,我的游戏以30 FPS运行,精灵以每像素1帧的速度运行,这可能需要长达5分钟的时间才能从一侧移动到另一侧。

将FPS改为300使其在摩托罗拉上正常工作,但在iPad上太快。

有没有解决这个问题?

    在你的问题中有一个更深层次的问题。 你正在经历这个困难,因为你正在想象你的游戏中的运动是像素/帧,而你应该考虑单位/秒。 这有时被称为“帧独立运动”,你可以在帧独立运动中看到一个很好的堆栈交换问答 。

    单位/秒的基本思想是:“单位”可以任意定义为任何方便。 1.0的单位可以是玩家控制的角色的宽度,你的canvas将由你决定,这些单位可能select匹配实际分辨率与你舞台的理想像素宽度。 一旦计算完成,所有的时间都是单位。

    • 你的角色全速移动有多快? 3个/秒。
    • 这个barrer有多高? 2.25个单位。
    • 敌方射弹有多快? 0.5单位/秒。

    拥抱这个想法,在Intel XDK和其他任何地方,您的编程任务都将被极大地简化。

    从堆栈溢出评论的答案 – https://stackoverflow.com/questions/3193277/how-do-i-make-a-canvas-drawing-to-completely-fill-the-browser

    使用canvas可以独立设置物理/可视尺寸和虚拟尺寸,例如。 绘制到设置为填充1280×768屏幕的500x500canvas上,但实际canvas仍保留在500×500。 我认为这是Micah正在做的事情,所以为什么这个解决scheme不能真正起作用。