SDXFrameWork 0.12 SDXFrameWork

- Main Page
- Related Pages
- Classes

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Namespaces Functions Variables Enumerations Enumerator Pages
Static Public Member Functions | List of all members
SDX::Director Class Reference

シーンを管理するクラス. More...

`#include <Director.h>`

## Static Public Member Functions
static void | Run ()
| 実行開始. More...
static void | AddScene (std::shared_ptr< IScene > 追加するシーン)
| Sceneを追加しスタックに積む. More...
static std::shared_ptr< IScene > | GetScene (int インデックス)
| 上からインデックス番目のシーンを取得. More...
static bool | ActiveScene (int インデックス)
| 上からインデックス番目のシーンをアクティブにする. More...
static bool & | IsDraw ()
| 描画更新フラグを設定. More...

## Detailed Description

シーンを管理するクラス.

//Copyright © 2014 SDXFramework
//[License]GNU Affero General Public License, version 3
//[Contact]http://sourceforge.jp/projects/dxframework/
//[サンプルコード作成中]
bool SampleDirector()
{
class SceneA : public IScene
{
public:
Image back;
SceneA()
{
back.Make(640, 480);
}
~SceneA()
{
}
void Update() override
{
if (Input::key.A.on)
{
Director::ActiveScene(1);
}
if (Input::key.Return.on)
{
Director::GetScene(0)->isEnd = true;
Director::GetScene(1)->isEnd = true;
}
}
void Draw() override
{
Screen::SetTarget(&back);
double x = Rand::Get(640.0);
double y = Rand::Get(480.0);
Color color = { Rand::Get(255), Rand::Get(255), Rand::Get(255) };
Drawing::Circle({ x, y, 30 }, color);
Screen::SetTarget();
back.Draw({0,0});
Drawing::String({ 10, 10 }, Color::White, "現在のSceneはA\nAキーでScene切り替え、Returnで終了");
}
};
class SceneB : public IScene
{
public:
int time = 0;
SceneB()
{
}
~SceneB()
{
}
void Update() override
{
++time;
if (time > 640){ time = 0; }
if (Input::key.A.on)
{
Director::ActiveScene(1);
}
if (Input::key.Return.on)
{
Director::GetScene(0)->isEnd = true;
Director::GetScene(1)->isEnd = true;
}
}
void Draw() override
{
Drawing::String({ 10, 10 }, Color::White, "現在のSceneはB\nAキーでScene切り替え、Returnで終了");
Drawing::Rect({ 0, 100, time, 280 }, Color::White);
}
};
using namespace SDX;
System::Initialise("sample", 640, 480);
//shared_ptrの関係でAとBでデストラクタを呼ばれるタイミングが変わる
std::shared_ptr<SceneA> sceneA = std::make_shared<SceneA>();
Director::AddScene(sceneA);
Director::AddScene(std::make_shared<SceneB>());
Director::Run();
System::End();
return true;
}

## Member Function Documentation

static void SDX::Director::Run | ( |  | ) |
| inline static

実行開始.

static void SDX::Director::AddScene | ( | std::shared_ptr< IScene > | 追加するシーン | ) |
| inline static

Sceneを追加しスタックに積む.

追加したシーンがアクティブになる
既に追加されているシーンの場合アクティブにするだけ

static std::shared_ptr<IScene> SDX::Director::GetScene | ( | int | インデックス | ) |
| inline static

上からインデックス番目のシーンを取得.

0で現在アクティブなシーン、1で一つ前

static bool SDX::Director::ActiveScene | ( | int | インデックス | ) |
| inline static

上からインデックス番目のシーンをアクティブにする.

0で現在アクティブなシーン

static bool& SDX::Director::IsDraw | ( |  | ) |
| inline static

描画更新フラグを設定.