SDXFrameWork  0.13
SDXFrameWork
 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< ISceneGetScene (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()
{
using namespace SDX;
class SceneA : public IScene
{
public:
Image back;
SceneA()
{
back.Make(640, 480);
}
~SceneA()
{
}
void Update() override
{
if (Input::key.A.on)
{
}
if (Input::key.Return.on)
{
Director::GetScene(0)->isEnd = true;
Director::GetScene(1)->isEnd = true;
}
}
void Draw() override
{
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);
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)
{
}
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(std::make_shared<SceneB>());
return true;
}

Member Function Documentation

static void SDX::Director::Run ( )
inlinestatic

実行開始.

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

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

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

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

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

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

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

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

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

static bool& SDX::Director::IsDraw ( )
inlinestatic

描画更新フラグを設定.