1

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

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

class LogicBallComponent
{
   // ...
};

class VisualBallcomponent
{
   sfml::Texture mBallTexture;

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

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

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

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

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

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

4

1 回答 1

0

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

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

于 2013-03-25T12:48:41.830 回答