0

私のヒーロー スプライトは物理スプライト上にあります。プレイヤー (ユーザー) がスプライトに触れている間、ヒーローを 2 秒間動かさない場合、ゲームを終了させたいと思います。更新メソッドでは、2 つのスプライトが 2 秒以上接触しているかどうかを確認し、真の場合は「ゲーム オーバー」アクションを実行します。これがコードです

if( TWO SPRITES ARE TOUCHING && USER ISN"T TOUCHING THE SCREEN ){
    [_hero runAction:[CCActionSequence actions:[CCActionDelay actionWithDuration:2.0f],
                      _gameOverAction,
                      nil]];

}

ユーザーが押し続けていてもエンド ゲーム アクションが実行されます。基本的に画面をタッチしてスプライトを動かさないとゲームが終了するはずです。助言がありますか?

4

1 に答える 1

1

現在のコードでは、2 つのスプライトが接触し、ユーザーが画面に触れていないとすぐに、アクションをすばやく終了します。キャンセルされることはないので、何があっても2秒で発生します。

代わりに行う必要があるのは、最後に発生した時刻の変数を保持し、更新ループでそれから 2 秒が経過したかどうかを確認することです。ある場合は、ゲーム オーバー メソッドを呼び出すことができます。

于 2014-09-26T00:25:33.287 に答える