新しい質問、クールアイスさんと似たようなことをしていてて、次のようなソースを作ったことがあるのですが、
これは使い方としていいのでしょうか?マズいのでしょうか?
vectorクラスで、各シーンの要素を管理し、インデックス値で、それぞれの要素にアクセスします。
ステージ1、ステージ2、ステージ3、、、と、同時に生成するのでメモリ的にはやさしくないですが、
簡素に表現できるので、私にはやさしいです。
手を加えれば、ステージ1のときにステージ2がメモリにないようにもできますが、
ひとまず、この状態で、どのような評価を受けるのか聞きたいです。
私的に思うのは、vectorの使い方ではなくて、シューティングの構成要素をどのように認識するか?
で、違ってくるのではないのかと考えています。
// 質もん.cpp : コンソール アプリケーションのエントリ ポイントを定義します。
//
#include "stdafx.h"
using namespace std;
#include <vector>
class CBase
{
protected:
int m_mode;
public:
virtual void Init() = 0;
virtual void Release() = 0;
virtual void Update() = 0;
};
class CTitle : public CBase
{
public:
void Init() { printf( "in Title::Init()\n" ); }
void Release() { printf( "in Title::Release()\n" ); }
void Update() { printf( "in Title::Update()\n" ); }
};
class CSetting : public CBase
{
public:
void Init() { printf( "in CSetting::Init()\n" ); }
void Release() { printf( "in CSetting::Release()\n" ); }
void Update() { printf( "in CSetting::Update()\n" ); }
};
class CStage : public CBase
{
public:
void Init() { printf( "in CStage::Init()\n" ); }
void Release() { printf( "in CStage::Release()\n" ); }
void Update() { printf( "in CStage::Update()\n" ); }
};
int _tmain(int argc, _TCHAR* argv[])
{
vector<CBase*> vFunction;
CBase* title = new CTitle();
CBase* setting = new CSetting();
CBase* stage1 = new CStage();
CBase* stage2 = new CStage();
vFunction.push_back( title );
vFunction.push_back( setting );
vFunction.push_back( stage1 );
vFunction.push_back( stage2 );
int input = 0;
while( input != -1 )
{
printf( "0: title\n" );
printf( "1: setting\n" );
printf( "2: stage\n" );
printf( "3: stage\n" );
printf( "-1: end\n" );
if( (0<=input) && (input<=3) )
vFunction.at(input)->Update();
else
printf( "-1 から 3 の数字を入れてください\n" );
scanf_s( "%d", &input );
}
return 0;
}
// 追加
「評価」ではなく「感想」を聞きたいです。