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