我正在开展赛车比赛,每辆赛车都在路上行驶。由于比赛是基于时间的,我将repeatCount设置为bug值。现在的问题是我无法确定比赛结束时完成了多少圈(换句话说,动画重复了多少次)。我尝试将CGIntersectRect用于汽车的车架,并在计时器功能中使用一些从不准确的起点。
答案 0 :(得分:0)
我认为您可以使用Animation Delegates
CAAnimation类提供了通知委托对象的方法 当动画开始和停止时。
如果动画指定了委托,则会收到 animationDidStart:消息,传递开始的动画实例。 当动画停止时,委托收到一个 animationDidStop:finished:message,传递动画实例 停止并指示动画是否完成的布尔值 它的持续时间成功或手动停止。
在animationDidStart:
中你可以放置计数器来测量迭代。每次调用递增此计数器都会给你迭代次数
答案 1 :(得分:0)
我可以自己解决,也许不是最好的答案。
我在起点处使用CaLayer并检查汽车和此图层的帧是否也在计时器中相交。问题仍然存在,因为它会多次交叉,给出图像和定时器频率的宽度和高度。然后我用一面旗子在它交叉时只计算一圈。
-Thanks!