c++ - cocos2d-x 中的渲染循环

标签 c++ cocos2d-x

我有一个为我的团队编写的游戏引擎,它是基于组件的。它有逻辑组件和可视组件。在可视组件中有一个名为 updateVisual(delta) 的函数,所有内容都在那里绘制。

例如,让我们以世界中的物理球实体为例:

class LogicBallComponent
{
   // ...
};

class VisualBallcomponent
{
   sfml::Texture mBallTexture;

   void updateVisual(float)
   {
       mBallTexture.translate(...);
       GlobalDisplayManager::instance().draw(mBallTexture);
   }
};

GlobalDisplayManager 返回一些创建 gl-states 等的窗口表示(sf::RenderWindow in sfml)。该系统易于集成。

现在我需要使用我的引擎制作安卓游戏。我选择了 cocos2d-x 用于窗口创建、渲染、字体、资源等。

还有另一种方法可以完成这项工作:

class Ball : public CLayer
{
   bool Ball::init() {
      CSprite* sprite = CSprite::create(...);
      this->addChild(sprite, 0); // [!]
   }
};

而且我不知道如何以我的方式使用它。有这种可能吗?

最佳答案

您应该查看函数“void CCDisplayLinkDirector::mainLoop(void)”,这是 coco2d-x 渲染引擎的主循环。

coco2d-x 为周期性调用循环提供包装器。在 iOS 中,您应该检查 platform/ios 中 CCDirectorCaller.mm 的函数 startMainLoop。

关于c++ - cocos2d-x 中的渲染循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15604173/

相关文章:

c++ - 如何在 C++ 中将变量用作函数?

python - 无法使用 create_project.py 创建新的 cocos2dx 项目

cocos2d-x - 适用于cocos2dx游戏的iPhone X/三星Galaxy S8长宽比问题

c++通过WMI更改硬件ID

c++ - 不完整类型的无效使用/前向声明

c++ - 在(c++) cocos2dx中将 map 对象添加到Vector

使用静态方法的 C++ 设计

c++ - 如何在cocos2d-x中将变量传递给lua函数?

c++ - 在 xcode 中将 boost 库添加到 cocos2d-x 项目中?

c++ - 如何在 Windows 中创建全屏 OpenGL-ES 渲染 View ?