私はC ++を初めて使用します。私はJava/Actionscript3のほうが多く、メモリ関連のものをこれまで扱ったことがないため、この質問はおそらく初心者のようです。
とにかく、私が抱えている問題については: シーンは抽象クラスです (したがって、それから派生して、MainScene などの複数のシーンを持つことができます)。
私が SceneManager に実行させたかったのは、選択したシーン (curSc) へのポインタ/参照を持たせることです。次に、次のようにシーンを設定します: setScene(&someScene)
しかし、私が理解しているように、ポインターを取得するには、次のように初期化する必要もあります。しかし、 Scene は抽象クラスであるため、それを行うことはできません..
class Scene {
public:
Scene(void){}
virtual ~Scene(void){}
virtual void update() = 0;
virtual void render() = 0;
};
class SceneManager {
public:
SceneManager(void);
~SceneManager(void);
void setScene(Scene *sc);
Scene* curSc;
}
これまでのところ、この場合にポインターを使用するのは間違っているように思えますが、機能しません..しかし、ここで取得しようとしている機能を実現する方法を知りたいです
どうもありがとうございました
リクエストによる編集: それが私がそれを使用しようとした方法です:
まず、GameScene という名前の派生クラスがあり、これは次のとおりです。
class GameScene : public Scene
{
public:
GameScene(void);
void render();
void update();
}
私の main() 関数には次のものがあります。
GameScene gamescene;
ScreenManager manager;
manager.setScene(&gamescene);