cocos2d-x:从另一个线程加载精灵不可能,任何模式?

Ger*_*ago 2 c++ multithreading design-patterns cocos2d-x

我的计划的事实

  1. Cocos2d-x主循环在自己的线程中运行.我们称之为cocos2d-x-thread.
  2. 我有一个task_scheduler在自己的线程中运行,您可以在其中提交轻量级任务.我们称之为task_scheduler-thread.
  3. 每隔x毫秒,就会从task_scheduler线程发出一个回调.我们称之为task_scheduler-tick-callback.

我想做的事

我想在发出task_scheduler-tick-callback时加载一个sprite ,但是我不能从那个线程中执行它,所以我必须提交一些由cocos2d-x线程执行的工作.

问题

  1. 如何在接收此工作时使cocos2d-x-thread被执行?因为cocos2d-x已经运行了自己的循环,我想避免不惜一切代价将自定义代码注入cocos2d-x生成的项目.

任何模式?

编辑:想法 - >在cocos2d-x中为每个循环迭代调用的任何回调函数?那存在吗?我可以集成在调用我的工作片那样.

dim*_*4eg 5

使用它来在主线程中执行代码:

Director::getInstance()->getScheduler()->performFunctionInCocosThread([]{
    // your code
});
Run Code Online (Sandbox Code Playgroud)