objective-c - 多点触控 Cocos2d TouchesBegan 个人与触摸集

标签 objective-c ios cocos2d-iphone multi-touch touchesbegan

我正在设计一个应用程序,我们在多点触控和稍微延迟的多点触控方面遇到了一些问题(这导致对 TouchesBegan 的 2 次单独调用)。

我们遇到的问题是当玩家同时用两根手指点击时:

有时它可以被注册为一个 NSSet with touches.count = 2

有时,如果玩家在第二次触摸时稍微晚了一点,它会注册两个调用 CCTouchesBegan,每个调用的 touches.count = 1。

注册 touches.count = 2 的 TouchesBegan 调用和当玩家在第二次触摸(对 TouchesBegan 的两次调用)稍晚时使用相同的回调注册 TouchesBegan 调用的最简单方法是什么?

我最初的想法是获取[事件时间戳]并将其与之前的时间戳进行比较,然后检查它是否在某个时间间隔内......

执行此操作的最佳方法是什么?

最佳答案

您不需要时间戳比较。除了使用 touches NSSet 对象,您还可以利用 event 来检索触摸。

- (void) ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    if( [[event allTouches] count] == 2 )
    {
        // Do your thing here
    }
}

注意:如果您用两根手指点击并稍有延迟,ccTouchesBegan 将被调用两次,但在第二次调用中,事件 对象将有两次触摸。

关于objective-c - 多点触控 Cocos2d TouchesBegan 个人与触摸集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12522283/

相关文章:

ios - 无尽跑酷游戏的总体架构是什么?

objective-c - 如何检测 subview 中的点击手势

ios - 自定义tableHeaderView隐藏单元格

ios - 我在 IOS SDK 5 中从 SDK 7 获得不同的 View 绘图

ios - 检查 iOS 是否正在播放音乐 ("Is button in control center Pause?")

cocos2d-iphone - 从 Texture2D 迁移到 CCTexture2D 的问题(设置 CCSprite 纹理)

objective-c - Objective C - 手动数组 FIFO 队列

ios - 计算请求和响应执行时间

ios - 如何在从服务器下载音频文件之前检查 iPhone 设备上是否有足够的空间

objective-c - import "cocos2d.h"在一些文件中有效,但不是全部