AbyssLib 1.301
あびす謹製ノベルゲームフレームワークライブラリ
|
00001 /************************************************* 00002 ファイル名:Scene.h 00003 作成者 :あびす 00004 役割 :各種シーン 00005 *************************************************/ 00010 #ifndef ABYSSLIB_SCENE_H 00011 #define ABYSSLIB_SCENE_H 00012 00013 namespace nsAbyssLib{ 00014 namespace nsScene{ 00015 00016 //シーンクラス(インターフェース) 00023 class IScene_Base{ 00024 public: 00028 virtual ~IScene_Base(){} //仮想デストラクタ 00029 00035 virtual void Initialize() = 0; //初期化 00036 00042 virtual void OnBegin() = 0; //前処理 00048 virtual void OnMove() = 0; //本処理 00054 virtual void OnDraw() = 0; //描画 00060 virtual void OnEnd() = 0; //後処理 00061 00068 virtual void SetParent(NovelPlayer* Parent){ //親エンジンを設定 00069 Outer = Parent; 00070 } 00071 protected: 00077 NovelPlayer* Outer; //親エンジンのアドレス 00078 }; 00079 00080 //通常シーン(デフォルト) 00084 class DefaultNormalScene : public IScene_Base{ 00085 public: 00089 DefaultNormalScene(); //デフォルトコンストラクタ 00090 00091 void Initialize(); //初期化 00092 00093 void OnBegin(); //前処理 00094 void OnMove(); //本処理 00095 void OnDraw(); //描画 00096 void OnEnd(); //後処理 00097 private: 00098 bool m_IsRun; //スクリプトが実行状態か? 00099 00100 DefaultNormalScene(const DefaultNormalScene&); //コピーコンストラクタ(禁止) 00101 DefaultNormalScene& operator =(const DefaultNormalScene&); //代入演算子(禁止) 00102 }; 00103 00104 //既読履歴シーン(デフォルト) 00108 class DefaultBackLogScene : public IScene_Base{ 00109 public: 00113 DefaultBackLogScene(); //デフォルトコンストラクタ 00114 00115 void Initialize(); //初期化 00116 00117 void OnBegin(); //前処理 00118 void OnMove(); //本処理 00119 void OnDraw(); //描画 00120 void OnEnd(); //後処理 00121 private: 00122 bool m_IsFirst; //初回フラグ 00123 Record m_Temp; //退避用 00124 00125 DefaultBackLogScene(const DefaultBackLogScene&); //コピーコンストラクタ(禁止) 00126 DefaultBackLogScene& operator =(const DefaultBackLogScene&); //代入演算子(禁止) 00127 }; 00128 00129 //セーブシーン(デフォルト) 00133 class DefaultSaveScene : public IScene_Base{ 00134 public: 00138 DefaultSaveScene(); //デフォルトコンストラクタ 00143 DefaultSaveScene(IIOStream* IOStream); //コンストラクタ(データ入出力クラス指定) 00147 ~DefaultSaveScene(); //デストラクタ 00148 00149 void Initialize(); //初期化 00150 00151 void OnBegin(); //前処理 00152 void OnMove(); //本処理 00153 void OnDraw(); //描画 00154 void OnEnd(); //後処理 00155 00156 void SetParent(NovelPlayer* Parent); //親エンジンを設定 00157 private: 00158 unsigned int m_nSelect; //選択番号(十の位) 00159 UICButtonDraw m_Data[10]; //ボタン(データ) 00160 UICButtonDraw m_Select[10]; //ボタン(十の位) 00161 UICButtonDraw m_EndSave; //ボタン(セーブ終了) 00162 IIOStream* m_IOStream; //データ入出力クラス 00163 virtual bool Confirm(); //確認 00164 virtual const char* GetSaveFileName(unsigned int Num); //セーブファイル名を取得 00165 virtual void SetData(unsigned int Num); //ボタン(データ)を設定 00166 00167 DefaultSaveScene(const DefaultSaveScene&); //コピーコンストラクタ(禁止) 00168 DefaultSaveScene& operator =(const DefaultSaveScene&); //代入演算子(禁止) 00169 }; 00170 00171 //ロードシーン(デフォルト) 00175 class DefaultLoadScene : public IScene_Base{ 00176 public: 00180 DefaultLoadScene(); //デフォルトコンストラクタ 00185 DefaultLoadScene(IIOStream* IOStream); //コンストラクタ(データ入出力クラス指定) 00189 ~DefaultLoadScene(); //デストラクタ 00190 00191 void Initialize(); //初期化 00192 00193 void OnBegin(); //前処理 00194 void OnMove(); //本処理 00195 void OnDraw(); //描画 00196 void OnEnd(); //後処理 00197 00198 void SetParent(NovelPlayer* Parent); //親エンジンを設定 00199 private: 00200 unsigned int m_nSelect; //選択番号(十の位) 00201 UICButtonDraw m_Data[10]; //ボタン(データ) 00202 UICButtonDraw m_Select[10]; //ボタン(十の位) 00203 UICButtonDraw m_EndLoad; //ボタン(ロード終了) 00204 IIOStream* m_IOStream; //データ入出力クラス 00205 virtual bool Confirm(); //確認 00206 virtual const char* GetSaveFileName(unsigned int Num); //セーブファイル名を取得 00207 virtual void SetData(unsigned int Num); //ボタン(データ)を設定 00208 00209 DefaultLoadScene(const DefaultLoadScene&); //コピーコンストラクタ(禁止) 00210 DefaultLoadScene& operator =(const DefaultLoadScene&); //代入演算子(禁止) 00211 }; 00212 00213 //環境設定シーン(デフォルト) 00217 class DefaultConfigScene : public IScene_Base{ 00218 public: 00222 DefaultConfigScene(); //デフォルトコンストラクタ 00223 00224 void Initialize(); //初期化 00225 00226 void OnBegin(); //前処理 00227 void OnMove(); //本処理 00228 void OnDraw(); //描画 00229 void OnEnd(); //後処理 00230 00231 void SetParent(NovelPlayer* Parent); //親エンジンを設定 00232 private: 00233 UICBarDraw m_AutoModeTime; //バー(オートモードの待機時間) 00234 UICBarDraw m_DefaultTextSpeed; //バー(テキストの表示速度(デフォルト)) 00235 UICBarDraw m_DefaultBGMVolume; //バー(BGMの音量(デフォルト)) 00236 UICBarDraw m_DefaultSEVolume; //バー(SEの音量(デフォルト)) 00237 UICBarDraw m_DefaultVoiceVolume; //バー(音声の音量(デフォルト)) 00238 UICButtonDraw m_WindowMode; //ボタン(ウインドウ) 00239 UICButtonDraw m_FullScreen; //ボタン(フルスクリーン) 00240 UICButtonDraw m_ForceSkipOn; //ボタン(強制スキップする) 00241 UICButtonDraw m_ForceSkipOff; //ボタン(強制スキップしない) 00242 UICButtonDraw m_EndConfig; //ボタン(環境設定終了) 00243 virtual void SetAutoModeTime(); //オートモードの待機時間を設定 00244 virtual void SetDefaultTextSpeed(); //テキストの表示速度(デフォルト)を設定 00245 virtual void SetDefaultBGMVolume(); //BGMの音量(デフォルト)を設定 00246 virtual void SetDefaultSEVolume(); //SEの音量(デフォルト)を設定 00247 virtual void SetDefaultVoiceVolume(); //音声の音量(デフォルト)を設定 00248 virtual void UpdateAllBarRate(); //全てのバーの割合を一括設定 00249 00250 DefaultConfigScene(const DefaultConfigScene&); //コピーコンストラクタ(禁止) 00251 DefaultConfigScene& operator =(const DefaultConfigScene&); //代入演算子(禁止) 00252 }; 00253 00254 //メニューシーン(デフォルト) 00258 class DefaultMenuScene : public IScene_Base{ 00259 public: 00263 DefaultMenuScene(); //デフォルトコンストラクタ 00264 00265 void Initialize(); //初期化 00266 00267 void OnBegin(); //前処理 00268 void OnMove(); //本処理 00269 void OnDraw(); //描画 00270 void OnEnd(); //後処理 00271 00272 void SetParent(NovelPlayer* Parent); //親エンジンを設定 00273 private: 00274 UICButtonDraw m_Auto; //ボタン(オートモード) 00275 UICButtonDraw m_Skip; //ボタン(スキップ) 00276 UICButtonDraw m_Save; //ボタン(セーブ) 00277 UICButtonDraw m_Load; //ボタン(ロード) 00278 UICButtonDraw m_Config; //ボタン(環境設定) 00279 UICButtonDraw m_EndGame; //ボタン(ゲーム終了) 00280 UICButtonDraw m_EndMenu; //ボタン(メニュー終了) 00281 virtual bool Confirm(); //確認 00282 00283 DefaultMenuScene(const DefaultMenuScene&); //コピーコンストラクタ(禁止) 00284 DefaultMenuScene& operator =(const DefaultMenuScene&); //代入演算子(禁止) 00285 }; 00286 00287 } 00288 } 00289 00290 #endif