DXライブラリでも使ってフレームワークでも 第1回

アバター
せんちゃ
記事: 50
登録日時: 13年前
住所: 江別市東野幌町
連絡を取る:

DXライブラリでも使ってフレームワークでも 第1回

投稿記事 by せんちゃ » 10年前

DXライブラリを使ってフレームワークでも書いてみようかなぁとか思いまして、
ちょっと暇なときにでもまとめようかと考えております。

まぁフレームワークといってもそこまで本格的なものを作るわけではなく、
要するに「ゲームを作るときにプログラマーと呼ばれる人種は大抵こういうものを最初に用意してるよ」というレベルのお話です。
なのであんまり眉間にシワを寄せない程度に、栗きんとんでも食べながらご覧下さい。


本日は第1回ということで一番簡単なフレームワークを

CODE:

#include"DxLib\DxLib.h"
#include
#include
#include
#include
#define APP_ASSERT assert

using namespace std;

namespace GameScene{

const int SCENE_NONE = 0;

//	フェードイン・アウトリスナー
class FadeListener{
public :
	virtual bool FadeIn( bool trigger ) = 0;
	virtual bool FadeOut( bool trigger ) = 0;
};


//	シーン基底クラス
//	ゲームシーンを制御する
class Scene{
private :
	string m_name;
	int m_sceneid;
	int m_nextsceneid;
	FadeListener* m_fadein;
	FadeListener* m_fadeout;
public :
	Scene(){
		m_name = "noname";
		m_sceneid = SCENE_NONE;
	}
	string getName(){
		return m_name;
	}
	int getSceneID(){
		return m_sceneid;
	}
	int getNextSceneID(){
		return m_nextsceneid;
	}
	void setNextSceneID( int nextsceneid ){
		m_nextsceneid = nextsceneid;
	}
	void setupScene( string name , int sceneid ){
		m_name = name;
		m_sceneid = sceneid;
	}
	FadeListener* getFadeIn() const{
		return m_fadein;
	}
	FadeListener* getFadeOut() const{
		return m_fadeout;
	}
	
	void OnPreInit(){
		m_nextsceneid = SCENE_NONE;
		m_fadein = NULL;
		m_fadeout = NULL;
	}
	virtual void OnInit(){
	}
	virtual void OnUpdateFirst(){
	}
	virtual void OnUpdate(){
	}
	virtual void OnRelease(){
	}
};
ゲームシーンの基底クラス
利用すると
OnInit()→OnUpdateFirst()→OnUpdate()→OnRelease()
という順番で処理がコールされる。
この仕組みはゲーム開発すると誰もが最初に覚えるのではないでしょうか。
結構有名かつすぐに実装できますが、これこそゲームフレームワークの原点のような気がする。

シーンとシーンの切り替わり時のフェードイン・フェードアウトの仕組み
シーン全体を管理するマネージャーに関してはまた次回


ではでは


追記
DXライブラリ使うとか書いておいて
関数が一つも入ってないことに気がついた
まぁそのうち入る
最後に編集したユーザー せんちゃ on 2013年9月13日(金) 17:11 [ 編集 2 回目 ]

コメントはまだありません。