SPL_SetEmitterCalcCycle

SPL_SetEmitterCalcCycle

構文

#include <spl/spl_emitter.h >

void SPL_SetEmitterCalcCycle(SPLEmitter* p_emtr, u16 cycle );

引数

p_emtr エミッタへのポインタ
cycle 計算サイクル

返り値

なし

説明

通常、エミッタAとエミッタBがあった場合
///////////////////////////////////////////
1フレーム目 エミッタAとエミッタBを計算
2フレーム目 エミッタAとエミッタBを計算
3フレーム目 エミッタAとエミッタBを計算
4フレーム目 エミッタAとエミッタBを計算

:
////////////////////////////////////////////
もしくは
///////////////////////////////////////////
1フレーム目 エミッタAとエミッタBを計算
2フレーム目
3フレーム目 エミッタAとエミッタBを計算
4フレーム目
:
:
////////////////////////////////////////////
という計算をおこないますが、
この関数を用いることにより、
///////////////////////////////////////////
1フレーム目 エミッタAを計算
2フレーム目 エミッタBを計算
3フレーム目 エミッタAを計算
4フレーム目 エミッタBを計算

:
////////////////////////////////////////////
ということがおこなえます。
これによりエミッタの計算量を減らし、各フレームごとに
平均的な計算量を割り当てることができます。

SPL_SetEmitterCalcCycle( エミッタAのポインタ, 1 )
SPL_SetEmitterCalcCycle( エミッタBのポインタ, 2 )
とすると、
///////////////////////////////////////////
1フレーム目(1) エミッタAを計算
2フレーム目(2) エミッタBを計算
3フレーム目(1) エミッタAを計算
4フレーム目(2) エミッタBを計算

:
////////////////////////////////////////////
というように計算されます。SPL_Calcの中ではサイクルが
回っており(1 2 1 2 1 2 1 2と)、それに合致したときにエミッタの計算がおこなわれます。

SPL_SetEmitterCalcCycle( エミッタAのポインタ, 0 )
と指定すると、エミッタAはサイクルに関係なく毎フレーム計算されます。
これはデフォルトの指定で、SPL_SetEmitterCalcCycleを
呼び出さないときは最初から0となっています。
これは実行時に変更しても大丈夫です。

SPL_SetEmitterCalcCycle( エミッタAのポインタ, 1 )
SPL_SetEmitterCalcCycle( エミッタBのポインタ, 2 )
SPL_SetEmitterCalcCycle( エミッタCのポインタ, 0 )
なら
///////////////////////////////////////////
1フレーム目(1) エミッタAとエミッタCを計算
2フレーム目(2) エミッタBとエミッタCを計算
3フレーム目(1) エミッタAとエミッタCを計算
4フレーム目(2) エミッタBとエミッタCを計算
:
:
////////////////////////////////////////////
となります。

履歴

ver.2005/03/17

 

ホームへ