iphone - 用户事件是否在 Cocos2d/Objective C 中的单独线程上生成

标签 iphone multithreading cocos2d-iphone

我已安排在每一帧上重复回调:

[self schedule:@selector(nextFrame:)];

这构成了我的主游戏循环。

当用户触摸屏幕时,会生成一个事件,例如

- (BOOL)ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event {
    ...
    // Respond to event
    ...
}
  1. 此事件是在新线程上立即生成的吗?

  2. ...或者它是否已排队并在当前帧完成时发生?

  3. ...还是其他什么?

如果是2.那么这是否意味着不存在多线程问题?

最佳答案

1) 所有 cocos2d-iphone 代码都在单个主游戏循环中处理,当 iPhone SDK 触摸事件发生时,Director 会调用 ccTouchBegan。

2)所有“事件”都在帧处理之前处理,渲染是最后完成的事情。

3) ...

Cocos2D 中不存在多线程问题。

关于iphone - 用户事件是否在 Cocos2d/Objective C 中的单独线程上生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4557328/

相关文章:

iphone - 尝试使用新的 iOS 5 API 向 Twitter 上的某人发送 "follow",得到 406 返回错误。为什么?

iphone - 在 UIScrollView 中覆盖 drawRect 时的黑色背景

ios - 使用 SSKeychain 存储在钥匙串(keychain)中的用户名是否总是出现在第 4 个索引中?

java - 程序如何保证使用执行器框架同时执行多个线程

objective-c - Cocos2d :Add uilabel in scene

iphone - 获取某个 UITableViewCell 的屏幕坐标?

java - 我怎样才能让这个方法返回一个数组?

Java sleep 中断异常

android - Eclipse Android SDK 错误 : unknown virtual device name

ios - ScrollView 滚动和触摸事件从不触发