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

シーンのインタフェース More...

#include <SceneManager.hpp>

Inherits s3d::Uncopyable.

Classes

struct  InitData
 

Public Types

using State_t = State
 
using Data_t = Data
 

Public Member Functions

SIV3D_NODISCARD_CXX20 IScene (const InitData &init)
 
virtual ~IScene ()=default
 
virtual void updateFadeIn ([[maybe_unused]] double t)
 フェードイン時の更新処理です。 More...
 
virtual void update ()
 通常時の更新処理です。 More...
 
virtual void updateFadeOut ([[maybe_unused]] double t)
 フェードアウト時の更新処理です。 More...
 
virtual void draw () const
 通常時の描画処理です。 More...
 
virtual void drawFadeIn (double t) const
 フェードイン時の描画処理です。 More...
 
virtual void drawFadeOut (double t) const
 フェードアウト時の描画処理です。 More...
 

Protected Member Functions

const State_tgetState () const
 現在のステートのキーを取得します。 More...
 
template<class DataType = Data, std::enable_if_t< not std::disjunction_v< std::is_array< DataType >, std::is_void< DataType >>> * = nullptr>
DataType & getData () const
 共有データへの参照を取得します。 More...
 
bool changeScene (const State_t &state, const Duration &transitionTime=Duration{ 2.0 }, CrossFade crossFade=CrossFade::No)
 シーンの変更をリクエストします。 More...
 
bool changeScene (const State_t &state, int32 transitionTimeMillisec, CrossFade crossFade=CrossFade::No)
 シーンの変更をリクエストします。 More...
 
void notifyError ()
 エラーの発生を通知します。 More...
 

Detailed Description

template<class State, class Data>
class s3d::IScene< State, Data >

シーンのインタフェース

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

Member Typedef Documentation

◆ Data_t

template<class State , class Data >
using s3d::IScene< State, Data >::Data_t = Data

◆ State_t

template<class State , class Data >
using s3d::IScene< State, Data >::State_t = State

Constructor & Destructor Documentation

◆ IScene()

template<class State , class Data >
SIV3D_NODISCARD_CXX20 s3d::IScene< State, Data >::IScene ( const InitData init)
explicit

◆ ~IScene()

template<class State , class Data >
virtual s3d::IScene< State, Data >::~IScene ( )
virtualdefault

Member Function Documentation

◆ changeScene() [1/2]

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

シーンの変更をリクエストします。

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

◆ changeScene() [2/2]

template<class State , class Data >
bool s3d::IScene< State, Data >::changeScene ( const State_t state,
int32  transitionTimeMillisec,
CrossFade  crossFade = CrossFade::No 
)
protected

シーンの変更をリクエストします。

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

◆ draw()

template<class State , class Data >
virtual void s3d::IScene< State, Data >::draw ( ) const
inlinevirtual

通常時の描画処理です。

◆ drawFadeIn()

template<class State , class Data >
virtual void s3d::IScene< State, Data >::drawFadeIn ( double  t) const
virtual

フェードイン時の描画処理です。

Parameters
tフェードインの進度 [0.0, 1.0]

◆ drawFadeOut()

template<class State , class Data >
virtual void s3d::IScene< State, Data >::drawFadeOut ( double  t) const
virtual

フェードアウト時の描画処理です。

Parameters
tフェードアウトの進度 [0.0, 1.0]

◆ getData()

template<class State , class Data >
template<class DataType = Data, std::enable_if_t< not std::disjunction_v< std::is_array< DataType >, std::is_void< DataType >>> * = nullptr>
DataType& s3d::IScene< State, Data >::getData ( ) const
protected

共有データへの参照を取得します。

Returns
共有データへの参照

◆ getState()

template<class State , class Data >
const State_t& s3d::IScene< State, Data >::getState ( ) const
protected

現在のステートのキーを取得します。

Returns
現在のステートのキー

◆ notifyError()

template<class State , class Data >
void s3d::IScene< State, Data >::notifyError ( )
protected

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

Remarks
この関数を呼ぶと、以降のこのシーンを管理するクラスの SceneManager::update() が false を返します。

◆ update()

template<class State , class Data >
virtual void s3d::IScene< State, Data >::update ( )
inlinevirtual

通常時の更新処理です。

◆ updateFadeIn()

template<class State , class Data >
virtual void s3d::IScene< State, Data >::updateFadeIn ( [[maybe_unused] ] double  t)
inlinevirtual

フェードイン時の更新処理です。

Parameters
tフェードインの進度 [0.0, 1.0]

◆ updateFadeOut()

template<class State , class Data >
virtual void s3d::IScene< State, Data >::updateFadeOut ( [[maybe_unused] ] double  t)
inlinevirtual

フェードアウト時の更新処理です。

Parameters
tフェードアウトの進度 [0.0, 1.0]

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