gpt4 book ai didi

android canvas onDraw 计时

转载 作者:行者123 更新时间:2023-12-04 18:10:32 30 4
gpt4 key购买 nike

  1. 我正在制作一款 Android 游戏,其中一些图形元素移动速度很快。我打算使用 Canvas,但担心 onDraw 方法会以不规则的间隔调用,从而使快速元素以不规则的速度移动。有没有办法确保定期调用 onDraw 方法。

  2. 或者,如果我可以获得以毫秒为单位的系统时间,我可以计算对 onDraw 的两次连续调用之间的差异,并根据这些快速元素的速度使它们的运动平滑。

请帮忙,

萨米尔

最佳答案

I am going to use Canvas but fear that the onDraw method will be called at irregular interevals making the fast elements move at irregular speeds

你不应该onDraw()中更新对象的位置,因为:

  • 确实,该方法可能不会按预定义的时间间隔调用
  • 它的目的是绘制对象,而不是更新对象

相反,使用计时器定期调用的另一个方法更新对象/世界。

更新世界后,在您的View 上调用invalidate() 以触发onDraw() 方法。如果您的应用程序有一些空闲时间,它将被调用。如果没有,没问题,因为 world update method 将继续运行,从而更新您的世界。

(当然,如果您的应用程序忙, View 永远不会更新,您就有问题要解决!)

Alternately if I can get the system time in msec I can take the difference between two consecutive calls to onDraw and based on the speed of these fast elements make the their movement smooth.

这就是“世界更新方法”中的方法!它将纠正不规则的计时器间隔。

关于android canvas onDraw 计时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14400746/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com