在cocos2d-x中渲染循环

时间:2013-03-24 21:22:52

标签: c++ cocos2d-x

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

例如,让我们在世界中采用物理球实体:

class LogicBallComponent
{
   // ...
};

class VisualBallcomponent
{
   sfml::Texture mBallTexture;

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

GlobalDisplayManager返回一些窗口表示,它创建gl状态等(sf :: sfml中的RenderWindow)。该系统易于集成。

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

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

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

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

1 个答案:

答案 0 :(得分:0)

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

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