1

各車が道を走るカーレースゲームに取り組んでいます。レースは時間ベースなので、repeatCount をバグ値に設定しています。ここでの問題は、レースが終了したときに何周が完了したか (つまり、アニメーションが何回繰り返されたか) がわからないことです。車のフレームに CGIntersectRect を使用し、正確ではないタイマー関数の開始点を使用しようとしました。

4

2 に答える 2

0

活用できると思いますAnimation Delegates

CAAnimationクラスは、アニメーションの開始時と停止時にデリゲートオブジェクトに通知する手段を提供します。

アニメーションにデリゲートが指定されている場合、animationDidStart:メッセージを受信し、開始したアニメーションインスタンスを渡します。アニメーションが停止すると、デリゲートはanimationDidStop:finished:メッセージを受け取り、停止したアニメーションインスタンスと、アニメーションがその期間を正常に完了したか手動で停止したかを示すブール値を渡します。

で、animationDidStart:反復を測定するためのカウンターを配置できます。呼び出しのたびに、このカウンターをインクリメントすると、反復番号が得られます。

于 2013-02-01T04:44:03.810 に答える