我的团队编写了一个游戏引擎,它是基于组件的。它具有逻辑组件和可视组件。在可视化组件中,有一个名为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); // [!]
}
};
我不知道如何以我的方式使用它。有没有这种可能性?
答案 0 :(得分:0)
你应该看看函数“void CCDisplayLinkDirector :: mainLoop(void)”,这是coco2d-x渲染引擎的主循环。
coco2d-x为定期调用循环提供包装器。在iOS中,您应该检查platform / ios中CCDirectorCaller.mm的函数startMainLoop。