无需事件处理的触摸检测

时间:2012-03-07 05:40:14

标签: objective-c cocos2d-iphone

我正在使用cocos2d。我希望能够检测屏幕是否在特定时刻被触摸 - 也就是说,不是在事件发生时拦截事件,我想在特定时刻检测到触摸的存在。

原因是我正在为精灵制作动画并且想要确定精灵是否应该继续移动 - 如果仍然触摸屏幕。我不能使用ccTouchesEnded,因为每次动画开始时我都会将isTouchEnabled设置为false,因为我还希望用户能够在屏幕上快速点击以移动精灵,但如果它们过快拍摄,则会使精灵的位置变得混乱在动画过程中 - 我发现它以奇怪的方式搞砸了我的物体的位置。

这可能吗?

1 个答案:

答案 0 :(得分:1)

除了在主UI运行循环中启用和接收这些事件之外,似乎没有任何公共API来检测触摸。

您可以继续处理事件,并设置模型对象或全局变量中最后一个触摸事件留下的状态。然后,您可以随时轮询您应用程序自己的内部状态。

如果事件时间戳太接近某个动画开始时间,您可以让触摸处理程序不要做不适当的事情,而不是禁用触摸。