OpenSiv3D  v0.6.5
C++20 framework for creative coding
s3d::Effect Class Reference

エフェクトグループ More...

#include <Effect.hpp>

Inherits s3d::AssetHandle< Effect >.

Public Member Functions

SIV3D_NODISCARD_CXX20 Effect (double maxLifeTimeSec=10.0)
 エフェクトグループを作成します。 More...
 
SIV3D_NODISCARD_CXX20 Effect (const Duration &maxLifeTimeSec)
 エフェクトグループを作成します。 More...
 
virtual ~Effect ()
 デストラクタ More...
 
const Effectadd (std::unique_ptr< IEffect > &&effect) const
 エフェクトグループに新しいエフェクトを追加します More...
 
template<class IEffectType , class... Args, std::enable_if_t< std::is_base_of_v< IEffect, IEffectType >> * = nullptr>
const Effectadd (Args &&... args) const
 エフェクトグループに新しいエフェクトを追加します More...
 
template<class Fty , std::enable_if_t< std::is_invocable_r_v< bool, Fty, double >> * = nullptr>
const Effectadd (Fty f) const
 エフェクトグループに新しいエフェクトを追加します More...
 
 operator bool () const
 エフェクトグループがアクティブなエフェクトを持っているかを返します。 More...
 
bool isEmpty () const
 エフェクトグループがアクティブなエフェクトを持っていないかを返します。 More...
 
bool hasEffects () const
 エフェクトグループがアクティブなエフェクトを持っているかを返します。 More...
 
size_t num_effects () const
 エフェクトグループでアクティブなエフェクトの個数を返します。 More...
 
void pause () const
 このエフェクトグループの時間経過を一時停止します。 More...
 
bool isPaused () const
 このエフェクトグループの時間経過が一時停止されているかを返します。 More...
 
void resume () const
 このエフェクトグループの時間経過が一時停止されている場合、再開します。 More...
 
const EffectsetSpeed (double speed) const
 このエフェクトグループの時間経過の速さを、実時間に対する倍率 (2.0 で 2 倍早く経過)で設定します。 More...
 
double getSpeed () const
 このエフェクトグループの時間経過の速さを返します。 More...
 
const EffectsetMaxLifeTime (double maxLifeTimeSec)
 このエフェクトグループでのエフェクトの最大継続時間(秒)を設定します。 More...
 
void setMaxLifeTime (const Duration &maxLifeTimeSec)
 このエフェクトグループでのエフェクトの最大継続時間(秒)を設定します。 More...
 
double getMaxLifeTime () const
 このエフェクトグループでのエフェクトの最大継続時間(秒)を返します。 More...
 
void update () const
 このエフェクトグループ内のエフェクトの update() を実行します。 More...
 
void clear () const
 このエフェクトグループ内の全てのエフェクトを、経過時間に関わらず消去します。 More...
 
void swap (Effect &other) noexcept
 
- Public Member Functions inherited from s3d::AssetHandle< Effect >
SIV3D_NODISCARD_CXX20 AssetHandle ()
 
SIV3D_NODISCARD_CXX20 AssetHandle (std::shared_ptr< AssetIDWrapperType > &&id)
 
IDType id () const noexcept
 アセットの内部管理 ID を返します。 More...
 
bool isEmpty () const noexcept
 アセットが空であるかを返します。 More...
 
 operator bool () const noexcept
 アセットが空でないかを返します。 More...
 
bool operator== (const AssetHandle &other) const noexcept
 2 つのアセットが同じオブジェクトであるかを返します。 More...
 
bool operator!= (const AssetHandle &other) const noexcept
 2 つのアセットが異なるオブジェクトであるかを返します。 More...
 
void release ()
 このハンドルが管理するアセットを解放します。 More...
 

Additional Inherited Members

- Public Types inherited from s3d::AssetHandle< Effect >
using AssetIDWrapperType = AssetIDWrapper< AssetHandle >
 アセット ID ラッパー型 More...
 
using IDType = typename AssetIDWrapperType::IDType
 アセット ID 型 More...
 
- Protected Attributes inherited from s3d::AssetHandle< Effect >
std::shared_ptr< AssetIDWrapperTypem_handle
 

Detailed Description

エフェクトグループ

Constructor & Destructor Documentation

◆ Effect() [1/2]

SIV3D_NODISCARD_CXX20 s3d::Effect::Effect ( double  maxLifeTimeSec = 10.0)

エフェクトグループを作成します。

Parameters
maxLifeTimeSecこのエフェクトグループでのエフェクトの最大継続時間(秒)

◆ Effect() [2/2]

SIV3D_NODISCARD_CXX20 s3d::Effect::Effect ( const Duration maxLifeTimeSec)

エフェクトグループを作成します。

Parameters
maxLifeTimeSecこのエフェクトグループでのエフェクトの最大継続時間(秒)

◆ ~Effect()

virtual s3d::Effect::~Effect ( )
virtual

デストラクタ

Member Function Documentation

◆ add() [1/3]

template<class IEffectType , class... Args, std::enable_if_t< std::is_base_of_v< IEffect, IEffectType >> * = nullptr>
const Effect& s3d::Effect::add ( Args &&...  args) const

エフェクトグループに新しいエフェクトを追加します

Template Parameters
IEffectType追加するエフェクトの型
...Argsコンストラクタ引数の型
Parameters
...argsコンストラクタ引数

◆ add() [2/3]

template<class Fty , std::enable_if_t< std::is_invocable_r_v< bool, Fty, double >> * = nullptr>
const Effect& s3d::Effect::add ( Fty  f) const

エフェクトグループに新しいエフェクトを追加します

Remarks
関数オブジェクトは double 型を受け取り bool 型を返す必要があります。
Template Parameters
Ftyエフェクト(関数オブジェクト)の型
Parameters
fエフェクトの関数オブジェクト

◆ add() [3/3]

const Effect& s3d::Effect::add ( std::unique_ptr< IEffect > &&  effect) const

エフェクトグループに新しいエフェクトを追加します

Parameters
effect追加するエフェクト

◆ clear()

void s3d::Effect::clear ( ) const

このエフェクトグループ内の全てのエフェクトを、経過時間に関わらず消去します。

◆ getMaxLifeTime()

double s3d::Effect::getMaxLifeTime ( ) const

このエフェクトグループでのエフェクトの最大継続時間(秒)を返します。

Returns
このエフェクトグループでのエフェクトの最大継続時間(秒)

◆ getSpeed()

double s3d::Effect::getSpeed ( ) const

このエフェクトグループの時間経過の速さを返します。

Returns
時間経過の速さ

◆ hasEffects()

bool s3d::Effect::hasEffects ( ) const

エフェクトグループがアクティブなエフェクトを持っているかを返します。

Returns
アクティブなエフェクトがある場合 true, それ以外の場合は false

◆ isEmpty()

bool s3d::Effect::isEmpty ( ) const

エフェクトグループがアクティブなエフェクトを持っていないかを返します。

Returns
アクティブなエフェクトがない場合 true, それ以外の場合は false

◆ isPaused()

bool s3d::Effect::isPaused ( ) const

このエフェクトグループの時間経過が一時停止されているかを返します。

Returns
一時停止されている場合 true, それ以外の場合は false

◆ num_effects()

size_t s3d::Effect::num_effects ( ) const

エフェクトグループでアクティブなエフェクトの個数を返します。

Returns
アクティブなエフェクトの個数

◆ operator bool()

s3d::Effect::operator bool ( ) const
explicit

エフェクトグループがアクティブなエフェクトを持っているかを返します。

Remarks
Effect::hasEffects() と同じ結果を返します。
Returns
アクティブなエフェクトがある場合 true, それ以外の場合は false

◆ pause()

void s3d::Effect::pause ( ) const

このエフェクトグループの時間経過を一時停止します。

◆ resume()

void s3d::Effect::resume ( ) const

このエフェクトグループの時間経過が一時停止されている場合、再開します。

◆ setMaxLifeTime() [1/2]

void s3d::Effect::setMaxLifeTime ( const Duration maxLifeTimeSec)

このエフェクトグループでのエフェクトの最大継続時間(秒)を設定します。

Parameters
maxLifeTimeSecこのエフェクトグループでのエフェクトの最大継続時間(秒)

◆ setMaxLifeTime() [2/2]

const Effect& s3d::Effect::setMaxLifeTime ( double  maxLifeTimeSec)

このエフェクトグループでのエフェクトの最大継続時間(秒)を設定します。

Parameters
maxLifeTimeSecこのエフェクトグループでのエフェクトの最大継続時間(秒)

◆ setSpeed()

const Effect& s3d::Effect::setSpeed ( double  speed) const

このエフェクトグループの時間経過の速さを、実時間に対する倍率 (2.0 で 2 倍早く経過)で設定します。

Parameters
speed時間経過の速さ

◆ swap()

void s3d::Effect::swap ( Effect other)
noexcept

◆ update()

void s3d::Effect::update ( ) const

このエフェクトグループ内のエフェクトの update() を実行します。


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