DXフレームワーク　リファレンス・マニュアル 0.01 DXフレームワークのリファレンスです。詳細は公式wiki

- メインページ
- 関連ページ
- クラス
- ファイル

- ファイル一覧

Director.h
1 #pragma once
2 #include "IScene.h"
3 #include "Timer.h"
4 #include "Input.h"
5 #include "Camera.h"
6
7 namespace DXFW
8 {
9 class Director
10 {
11 private:
12 std::list< std::shared_ptr<IScene> > scenes;
13
14 Director(){};
16 static Director& Single()
17 {
18 static Director instance;
19 return instance;
20 }
21
22 public:
24 static void Run()
25 {
26 Time::ResetFPS();
27
28 while( Dx::ProcessMessage() )
29 {
30 if( Single().scenes.size() == 0 ) break;
31 Single().scenes.back()->Update();
32 Remove();
33 Single().scenes.back()->Draw();
34
35 //更新処理
36 if( Camera::Now() ) Camera::Now()->Update();
37 Input::Update();
38 Time::CheckFPS();
39 Screen::Flip();
40 Screen::Clear();
41 }
42 }
43
45 static void Remove()
46 {
47 auto it = Single().scenes.begin();
48
49 while( it != Single().scenes.end() )
50 {
51 if( (*it)->IsEnd() )
52 {
53 Single().scenes.remove( (*it) );
54 continue;
55 }
56 it++;
57 }
58 }
59
61 static void SetActive( IScene* scene )
62 {
63 //既に存在する場合追加のみ
64 auto it = Single().scenes.begin();
65 while( it != Single().scenes.end() )
66 {
67 if( (*it).get() == scene )
68 {
69 Single().scenes.push_back( std::shared_ptr<IScene>(scene) );
70 Single().scenes.remove( (*it) );
71 return;
72 }
73 break;
74 }
75 //存在していない場合初期化もする
76 scene->Init();
77 Single().scenes.push_back( std::shared_ptr<IScene>(scene) );
78 }
79 };
80 }
DXFW::Dx::ProcessMessage
static bool ProcessMessage()
Definition: Dx.h:63
DXFW::Director
Definition: Director.h:9
DXFW::Screen::Clear
static bool Clear()
summary&gt;拡大描画の補完方法を設定
Definition: Screen.h:126
DXFW::Time::CheckFPS
static void CheckFPS()
summary&gt;処理時間計測開始
Definition: Timer.h:84
DXFW::Time::ResetFPS
static void ResetFPS()
summary&gt;FPS計測を更新
Definition: Timer.h:78
DXFW::Camera::Update
void Update()
Definition: Camera.h:151
DXFW::IScene
説明
Definition: IScene.h:5
DXFW::Director::Run
static void Run()
説明
Definition: Director.h:24
DXFW::Director::SetActive
static void SetActive(IScene *scene)
説明
Definition: Director.h:61
DXFW::Input::Update
static void Update()
状態を更新
Definition: Input.h:892
DXFW::Screen::Flip
static bool Flip()
summary&gt;裏画面の内容を、表画面にコピー
Definition: Screen.h:113
DXFW::Director::Remove
static void Remove()
説明
Definition: Director.h:45
DXFW::Camera::Now
static Camera * Now()
Definition: Camera.h:66