Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我的应用在一些Android设备上运行得太快了_Android - Fatal编程技术网

我的应用在一些Android设备上运行得太快了

我的应用在一些Android设备上运行得太快了,android,Android,我刚刚发布了一个应用程序,避免尖峰!在android市场上。 我的一些朋友在他们的手机/平板电脑上下载了这些应用程序,我听说它运行得太快了。它在我的android(HTC Dream)上运行得很好。有没有办法告诉我们,它在某些机器人上运行会快多少,以及如何相应地调整它?我到处搜索,还没有找到答案。听起来你的应用程序是游戏?如果是这样的话,你可能会有一个游戏循环,让游戏尽可能快地运行。我发现这篇关于实现游戏循环的帖子非常有用:,当我创建涉及时间的游戏时。听起来你的应用程序就是一个游戏?如果是这样的

我刚刚发布了一个应用程序,避免尖峰!在android市场上。
我的一些朋友在他们的手机/平板电脑上下载了这些应用程序,我听说它运行得太快了。它在我的android(HTC Dream)上运行得很好。有没有办法告诉我们,它在某些机器人上运行会快多少,以及如何相应地调整它?我到处搜索,还没有找到答案。

听起来你的应用程序是游戏?如果是这样的话,你可能会有一个游戏循环,让游戏尽可能快地运行。我发现这篇关于实现游戏循环的帖子非常有用:,当我创建涉及时间的游戏时。

听起来你的应用程序就是一个游戏?如果是这样的话,你可能会有一个游戏循环,让游戏尽可能快地运行。我发现这篇关于实现游戏循环的帖子非常有用:,当我创建涉及时间的游戏时。

我在Android Market上看过你的游戏并试用过

实际上,您无法确定在各种现有硬件上获得的最小和最大速度,如下所示:

  • 市场上每天都有新的硬件出现
  • 在给定的硬件上,其他因素可能会影响应用程序的执行速度
你应该做的是让你的游戏独立于帧率。为此,请避免每次更新对象的位置时使其移动固定距离。更喜欢让他们在一定时间内移动固定距离

为此,请在每次更新对象的位置时测量自上次更新以来经过的时间,并相应地计算要移动到的距离

通过这种方式,根据硬件的质量,这些对象将很好地跳跃或移动,但至少它们将以相同的速度跳跃或移动,而这个速度将由您决定。这与在全新或旧机器上玩FPS游戏时有点相同:运动速度是恒定的,只是帧速率不是。在旧机器上,你会感觉到物体跳跃,而在新机器上,它们优雅地移动,但这两种情况都适用(当然,对于旧机器来说,这是有一定限制的)。这样机器永远不会太快

给你一些伪代码,一个伞兵从屏幕的顶部跌落到底部:

  • 这是要避免的循环:

    while (playing) { 
        update_positions();
        display();   
    }
    
    update_positions() {
        paratrooper.y -= 10; // the paratrooper's altitude decreases of 10 at each update
    }
    
在速度较慢的硬件上,通过屏幕需要几个小时。在一个快速的硬件上,这将是太快了,你甚至不会看到伞兵下降

  • 这是正确的方法:

    while (playing) { 
        update_positions();
        display();   
    }
    
    update_positions() {
        time_elapsed = getSystemTimeInMS() - lastUpdateTimeInMS();
        paratrooper.y -= 0.01 * time_elapsed; // the paratrooper's altitude decreases of 10 per second
    
        setLastUpdateTimeMS(getSystemTimeInMS()); // This way it includes the calculation time
    }
    

在低速硬件上,穿越整个屏幕可能需要15个显示器,而在高速硬件上则需要45个显示器,但在每种情况下,你的伞兵都会以每秒10dp的速度下降。

我在Android Market上看过你的游戏并尝试过

实际上,您无法确定在各种现有硬件上获得的最小和最大速度,如下所示:

  • 市场上每天都有新的硬件出现
  • 在给定的硬件上,其他因素可能会影响应用程序的执行速度
你应该做的是让你的游戏独立于帧率。为此,请避免每次更新对象的位置时使其移动固定距离。更喜欢让他们在一定时间内移动固定距离

为此,请在每次更新对象的位置时测量自上次更新以来经过的时间,并相应地计算要移动到的距离

通过这种方式,根据硬件的质量,这些对象将很好地跳跃或移动,但至少它们将以相同的速度跳跃或移动,而这个速度将由您决定。这与在全新或旧机器上玩FPS游戏时有点相同:运动速度是恒定的,只是帧速率不是。在旧机器上,你会感觉到物体跳跃,而在新机器上,它们优雅地移动,但这两种情况都适用(当然,对于旧机器来说,这是有一定限制的)。这样机器永远不会太快

给你一些伪代码,一个伞兵从屏幕的顶部跌落到底部:

  • 这是要避免的循环:

    while (playing) { 
        update_positions();
        display();   
    }
    
    update_positions() {
        paratrooper.y -= 10; // the paratrooper's altitude decreases of 10 at each update
    }
    
在速度较慢的硬件上,通过屏幕需要几个小时。在一个快速的硬件上,这将是太快了,你甚至不会看到伞兵下降

  • 这是正确的方法:

    while (playing) { 
        update_positions();
        display();   
    }
    
    update_positions() {
        time_elapsed = getSystemTimeInMS() - lastUpdateTimeInMS();
        paratrooper.y -= 0.01 * time_elapsed; // the paratrooper's altitude decreases of 10 per second
    
        setLastUpdateTimeMS(getSystemTimeInMS()); // This way it includes the calculation time
    }
    

在低速硬件上,穿越整个屏幕可能需要15个显示器,而在高速硬件上则需要45个显示器,但在每种情况下,你的伞兵都会以每秒10dp的速度下降。

我有点困惑:更详细地定义跑得太快。帧速率不正确吗?计时器是否比应该的时间提前结束?算法花费的时间比它们应该花费的时间少吗?到底是什么跑得太快?我有点困惑:更详细地定义跑得太快。帧速率不正确吗?计时器是否比应该的时间提前结束?算法花费的时间比它们应该花费的时间少吗?什么东西跑得太快了?谢谢。这正是我需要的。谢谢。这正是我需要的。谢谢。这帮了大忙,谢谢。这帮了大忙。