0

我的英雄精灵在物理精灵上。如果玩家(用户)在触摸精灵时没有移动英雄 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 秒。如果有,那么您可以调用游戏结束方法。

于 2014-09-26T00:25:33.287 回答