1

チームにゲームエンジンを作成しました。これはコンポーネントベースです。ロジックコンポーネントとビジュアルコンポーネントがあります。ビジュアルコンポーネントには、という名前の関数がupdateVisual(delta)あり、すべてがそこに描画されます。

たとえば、世界の物理ボールエンティティを見てみましょう。

class LogicBallComponent
{
   // ...
};

class VisualBallcomponent
{
   sfml::Texture mBallTexture;

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

GlobalDisplayManagergl-statesなどを作成するウィンドウ表現を返します(sfmlのsf :: RenderWindow)。このシステムは簡単に統合できます。

次に、エンジンを使用してandroid-gameを作成する必要があります。ウィンドウの作成、レンダリング、フォント、リソースなどに使用するcocos2d-xを選択しました。

仕事をする別の方法があります:

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

そして、私はそれを私のやり方で使用する方法がわかりません。そのような可能性はありますか?

4

1 に答える 1

0

coco2d-xレンダリングエンジンのメインループである関数「voidCCDisplayLinkDirector::mainLoop(void)」を確認する必要があります。

coco2d-xは、定期的な呼び出しループのラッパーを提供します。iOSでは、platform/iosのCCDirectorCaller.mmの関数startMainLoopを確認する必要があります。

于 2013-03-25T12:48:41.830 に答える