0

我正在创建一个射击游戏,您可以在其中触摸屏幕并让玩家射击。我遇到的问题是,当您触摸屏幕并保持向下拖动它时,它会迅速射击。处理这个问题的最佳方法是什么?

我希望玩家能够按住手指并以稳定的速度射击,并在手指向上停止射击。

我正在考虑只使用计时器,但我认为这不是很有效......还有其他想法吗?

谢谢

4

1 回答 1

1

我真的很想看到更多关于你如何实施拍摄的细节,但让我为你提供一种方法来实现这一点:

  1. 在 cocos2d 中,您可以使用CCScheduler来安排方法调用,而不是使用计时器。这是非常有效的。您不必担心性能。
  2. 在预定的方法中,您将检查用户是否仍在触摸屏幕,并据此决定是否拍摄。

以下是一些帮助您入门的代码:

注意:我在 cocos2d v2.0 中使用 cocos2d v1.0.1 ..,我认为它CCScheduler已移至CCDirector.

- (void)init {
    // ...

    [[CCScheduler sharedScheduler] scheduleSelector:@selector(shoot:) forTarget:self interval:0.2f paused:NO];

    // ...
}

- (void)shoot:(ccTime)dt {
    if (userIsTouching) {
        [player shoot];
    }
}
于 2012-08-02T17:23:10.063 回答