我的团队写了一个游戏引擎,它是基于组件的。它具有逻辑组件和可视组件。在可视组件中,有一个名为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。