GPGAが考えてるゲームプログラム構築(3)

今回はオブジェクトの基底クラスとそれを継承したクラスを記述します。
ちょっと長いです。
まずは、オブジェクトの基底クラスです。


/*!
* @brief オブジェクトの基幹クラス
*/
class ObjectBase
{
public :
/*!
* @brief コンストラク
*/
ObjectBase();
/*!
* @brief デストラク
*/
virtual ~ObjectBase();
/*!
* @brief アクション
*/
virtual void Action();
/*!
* @brief 描画
*/
virtual void Draw();
/*!
* @brief IDの取得
*/
virtual DWORD GetId();
/*!
* @brief 初期データのセット
*
* @param ulIndex 自身のインデックス
* @param ulIdno ID
* @param ulMode 初期のモード
* @param pSharing タスクごとの共有データのポインタ
*/
virtual void Set(DWORD ulIndex, DWORD ulIdno, DWORD ulMode, void* pSharing) = 0;

protected :
DWORD m_ulIdno; //!< ID
DWORD m_ulMode; //!< モード
long m_lXpos; //!< X座標
long m_lYpos; //!< Y座標
DWORD m_ulTexIndex; //!< テクスチャーのインデックス
DWORD m_ulMyIndex; //!< 自身のインデックス
};

次にタイトルオブジェクトの基底クラスです。

/*!
* @brief ゲームオブジェクトの基幹クラス
*/
class TitleObjectBase : public ObjectBase
{
public :
/*!
* @brief コンストラク
*/
TitleObjectBase() { }
/*!
* @brief デストラク
*/
virtual ~TitleObjectBase() { }
/*!
* @brief 初期データのセット
*/
virtual void Set(DWORD ulIndex, DWORD ulIdno, DWORD ulMode, void* pTitleData) {
m_ulIdno = ulIdno;
m_ulMode = ulMode;
m_ulMyIndex = ulIndex;
m_pTitleData = reinterpret_cast< TITLE_DATA* >( pTitleData );
}

protected :
TITLE_DATA* m_pTitleData; //!< タイトル共有データ
};

後は、TitleObjectBaseを継承したクラスをどんどんつくるだけ。
詳しい実装方法は後日で記述します。