1

我正在开发一款赛车游戏,每辆车都在一条路径上行驶。由于比赛是基于时间的,我将 repeatCount 设置为错误值。现在的问题是我无法计算比赛结束时完成了多少圈(换句话说动画重复了多少次)。我尝试将 CGIntersectRect 用于汽车的框架和计时器函数中的某个起点,因为它永远不准确。

4

2 回答 2

0

我可以自己解决它,可能不是最好的答案。

我在起点使用 CaLayer 并检查汽车的框架和该层是否也在计时器中相交。这个问题会随着时间的推移而继续存在,因为它会多次相交,从而给出图像的宽度和高度以及计时器频率。然后我用一面旗帜在相交时只计算圈数一次。

-谢谢!

于 2013-02-02T04:41:42.070 回答
0

我认为你可以利用Animation Delegates

CAAnimation 类提供了在动画开始和停止时通知委托对象的方法。

如果动画指定了委托,它将接收 animationDidStart: 消息,传递开始的动画实例。当动画停止时,代理会收到 animationDidStop:finished: 消息,传递停止的动画实例和指示动画是成功完成其持续时间还是手动停止的布尔值。

animationDidStart:你可以放置计数器来测量迭代。每次调用递增这个计数器会给你迭代次数

于 2013-02-01T04:44:03.810 回答