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

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

class LogicBallComponent
{
   // ...
};

class VisualBallcomponent
{
   sfml::Texture mBallTexture;

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


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

现在,我需要使用引擎制作android游戏。我选择了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。

09-19 23:42