OpenSiv3D  v0.6.5
C++20 framework for creative coding
s3d::SceneManager< State, Data > Class Template Reference

シーン遷移管理 More...

#include <SceneManager.hpp>

Public Types

using Scene = IScene< State, Data >
 シーンのインタフェース型 More...
 

Public Member Functions

SIV3D_NODISCARD_CXX20 SceneManager ()
 シーン管理を初期化します。 More...
 
SIV3D_NODISCARD_CXX20 SceneManager (const SceneManager &)=delete
 
SIV3D_NODISCARD_CXX20 SceneManager (SceneManager &&other) noexcept
 
SIV3D_NODISCARD_CXX20 SceneManager (const std::shared_ptr< Data > &data)
 シーン管理を初期化します。 More...
 
SceneManageroperator= (const SceneManager &)=delete
 
SceneManageroperator= (SceneManager &&other) noexcept
 
template<class SceneType >
SceneManageradd (const State &state)
 シーンを登録します。 More...
 
bool init (const State &state)
 最初のシーンを初期化します。 More...
 
bool updateScene ()
 現在のシーンの更新処理のみを行います。 More...
 
void drawScene () const
 現在のシーンの描画処理のみを行います。 More...
 
bool update ()
 現在のシーンの更新処理と描画処理を行います。 More...
 
std::shared_ptr< Data > get () noexcept
 共有データを取得します。 More...
 
const std::shared_ptr< const Data > get () const noexcept
 共有データを取得します。 More...
 
bool changeScene (const State &state, const Duration &transitionTime=Duration{ 2.0 }, CrossFade crossFade=CrossFade::No)
 シーンを変更します。 More...
 
bool changeScene (const State &state, int32 transitionTimeMillisec, CrossFade crossFade=CrossFade::No)
 シーンを変更します。 More...
 
SceneManagersetFadeColor (const ColorF &color) noexcept
 デフォルトのフェードイン・アウトに使う色を設定します。 More...
 
const ColorFgetFadeColor () const noexcept
 デフォルトのフェードイン・アウトに使う色を返します。 More...
 
void notifyError () noexcept
 エラーの発生を通知します。 More...
 

Detailed Description

template<class State, class Data = void>
class s3d::SceneManager< State, Data >

シーン遷移管理

Template Parameters
Stateシーンを区別するキーの型
Dataシーン間で共有するデータの型

Member Typedef Documentation

◆ Scene

template<class State , class Data = void>
using s3d::SceneManager< State, Data >::Scene = IScene<State, Data>

シーンのインタフェース型

Constructor & Destructor Documentation

◆ SceneManager() [1/4]

template<class State , class Data = void>
SIV3D_NODISCARD_CXX20 s3d::SceneManager< State, Data >::SceneManager ( )

シーン管理を初期化します。

◆ SceneManager() [2/4]

template<class State , class Data = void>
SIV3D_NODISCARD_CXX20 s3d::SceneManager< State, Data >::SceneManager ( const SceneManager< State, Data > &  )
delete

◆ SceneManager() [3/4]

template<class State , class Data = void>
SIV3D_NODISCARD_CXX20 s3d::SceneManager< State, Data >::SceneManager ( SceneManager< State, Data > &&  other)
noexcept

◆ SceneManager() [4/4]

template<class State , class Data = void>
SIV3D_NODISCARD_CXX20 s3d::SceneManager< State, Data >::SceneManager ( const std::shared_ptr< Data > &  data)
explicit

シーン管理を初期化します。

Parameters
data共有データ

Member Function Documentation

◆ add()

template<class State , class Data = void>
template<class SceneType >
SceneManager& s3d::SceneManager< State, Data >::add ( const State &  state)

シーンを登録します。

Template Parameters
SceneTypeシーンの型
Parameters
stateシーンのキー
Returns
シーンの登録に成功した場合 true, それ以外の場合は false

◆ changeScene() [1/2]

template<class State , class Data = void>
bool s3d::SceneManager< State, Data >::changeScene ( const State &  state,
const Duration transitionTime = Duration{ 2.0 },
CrossFade  crossFade = CrossFade::No 
)

シーンを変更します。

Parameters
state次のシーンのキー
transitionTimeフェードイン・アウトの時間
crossFadeロスフェードを有効にするか
Returns
シーンの変更が開始される場合 true, それ以外の場合は false

◆ changeScene() [2/2]

template<class State , class Data = void>
bool s3d::SceneManager< State, Data >::changeScene ( const State &  state,
int32  transitionTimeMillisec,
CrossFade  crossFade = CrossFade::No 
)

シーンを変更します。

Parameters
state次のシーンのキー
transitionTimeMillisecフェードイン・アウトの時間(ミリ秒)
crossFadeクロスフェードを有効にするか
Returns
シーンの変更が開始される場合 true, それ以外の場合は false

◆ drawScene()

template<class State , class Data = void>
void s3d::SceneManager< State, Data >::drawScene ( ) const

現在のシーンの描画処理のみを行います。

Remarks
通常はこの関数は使用しません。

◆ get() [1/2]

template<class State , class Data = void>
const std::shared_ptr<const Data> s3d::SceneManager< State, Data >::get ( ) const
noexcept

共有データを取得します。

Returns
共有データへのポインタ

◆ get() [2/2]

template<class State , class Data = void>
std::shared_ptr<Data> s3d::SceneManager< State, Data >::get ( )
noexcept

共有データを取得します。

Returns
共有データへのポインタ

◆ getFadeColor()

template<class State , class Data = void>
const ColorF& s3d::SceneManager< State, Data >::getFadeColor ( ) const
noexcept

デフォルトのフェードイン・アウトに使う色を返します。

Returns
デフォルトのフェードイン・アウトに使う色

◆ init()

template<class State , class Data = void>
bool s3d::SceneManager< State, Data >::init ( const State &  state)

最初のシーンを初期化します。

Parameters
state最初のシーン
Returns
初期化に成功した場合 true, それ以外の場合は false

◆ notifyError()

template<class State , class Data = void>
void s3d::SceneManager< State, Data >::notifyError ( )
noexcept

エラーの発生を通知します。

Returns
この関数を呼ぶと、以降のこのクラスの SceneManager::update() が false を返します。

◆ operator=() [1/2]

template<class State , class Data = void>
SceneManager& s3d::SceneManager< State, Data >::operator= ( const SceneManager< State, Data > &  )
delete

◆ operator=() [2/2]

template<class State , class Data = void>
SceneManager& s3d::SceneManager< State, Data >::operator= ( SceneManager< State, Data > &&  other)
noexcept

◆ setFadeColor()

template<class State , class Data = void>
SceneManager& s3d::SceneManager< State, Data >::setFadeColor ( const ColorF color)
noexcept

デフォルトのフェードイン・アウトに使う色を設定します。

Parameters
colorデフォルトのフェードイン・アウトに使う色
Returns
*this

◆ update()

template<class State , class Data = void>
bool s3d::SceneManager< State, Data >::update ( )

現在のシーンの更新処理と描画処理を行います。

Returns
シーンの更新処理に成功した場合 true, それ以外の場合は false

◆ updateScene()

template<class State , class Data = void>
bool s3d::SceneManager< State, Data >::updateScene ( )

現在のシーンの更新処理のみを行います。

Remarks
通常はこの関数は使用しません。
Returns
シーンの更新処理に成功した場合 true, それ以外の場合は false

The documentation for this class was generated from the following file: