【问题标题】:Number of touches shows 1 after the first touch第一次触摸后触摸次数显示1
【发布时间】:2013-07-02 19:03:57
【问题描述】:

我正在使用 Cocos2D 进行游戏开发。这是我最近遇到的。

-(void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
      NSLog(@"Number of touches %d",touches.count);
}

我在 iPod touch 上运行示例应用程序并用两根手指触摸屏幕。第一次触摸时,日志显示“触摸次数 2”,但在第一次触摸后,无论我用多少手指触摸,我都会得到“触摸次数 1”。

我的点击次数也有问题。如果我 NSLog 点按计数并触摸屏幕,我会得到以下输出:

The tap count is 1
The tap count is 2
The tap count is 3 
And so on.....

当我三次点击屏幕而不是获得 1、2、3 时,我不应该只获得“点击计数 3”吗?它会记录所有点击,直到最后一个。

我对触摸的了解和肯定是:

  1. 触摸可以是单点触控或多点触控,具体取决于点击屏幕的手指。
  2. Touch 具有可以为 1 或更高的点击计数属性。

我需要这两种行为正常工作,因为我会根据触摸和点击的次数来决定要做什么。

【问题讨论】:

    标签: ios cocos2d-iphone touches


    【解决方案1】:
    NSArray * touchArray = [touches allObjects];
    NSLog(@"Number of touches %d",touchArray.count);
    

    上面的代码是如果你这样做,当前有多少触摸是活动的

    NSSet *touches= [event allTouches];
    

    您将计算一次触发该方法的触摸次数,例如两指点击或三指点击

    【讨论】:

    • 这确实有助于增加触摸次数。但我没有得到一件事:计算 NSSet 中的对象并将其中的所有对象放入 NSArray 然后计算该数组有什么区别?
    • 希望这可以帮助您看到他们在 techotopia.com/index.php/… 方法中使用 nsuinteger 进行点击计数
    • @MikeJM 并回答您关于使用 Apples NSSet 方法和创建自己的数组之间的区别的问题,老实说,我会完全按照您最初的方式编写它,因为它看起来应该可以工作但我查了一下,看到其他多人使用他们自己的数组没有问题。只是为了确保即使您可能拥有它,也要确保您的视图在情节提要中选中了允许用户交互和启用多点触控复选框。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多