Ninja Library - モーション関数

njLightAction

ライトモーションの実行(アクション構造体対応)

書式

void njLightAction( light_num, laction, frame )
Int light_num
const NJS_LACTION *laction
Float frame

引数

light_num   ライト番号
laction   ライトアクション構造体へのポインタ
frame   フレーム番号(0〜モーションフレーム数(caction->motion->nbFrame)未満)

戻り値

なし

解説

ライトのモーションをモーションデータにしたがって実行します。 ライト構造体のfuncがEasyMulti、SimleMulti関数の場合は、ライト番号(light_num)を 指定します。設定する値は、EasyMulti、SimpleMulti関数のライト番号と同じです。 ただし、アンビエントライトのときと、Easy、Simple関数のときこの値は参照されません。

通常、本関数の laction 引数には、ライトモーション用の NAMファイル(またはNJMファイル)中の NJS_LACTION 構造体を指定します。

本関数は、njLightMotion( laction->light, laction->motion, frame ); を呼び出すのと等価です。


用例

#include <Ninja.h>
#define LIGHT_ACTION    light_action1;
#define ENEMY1_MODEL     model_enemy1;
#define ENEMY1_MOTION    motion_enemy1;

extern NJS_CACTION     LIGHT_ACTION;
extern NJS_MODEL       ENEMY1_MODEL;
extern NJS_MOTION      ENEMY1_MOTION;

void DrawFunc( Float frame )
{

    njLightAction( NJD_CNK_EASY_MULTILIGHT_1, &LIGHT_ACTION, frame );
 	njCnkSetEasyMultiLightSwitch(NJD_CNK_EASY_MULTILIGHT_ALL, 1);
    
    njPushMatrixEx();
	njCnkSetEasyMultiLightMatrices();
    njTranslate( NULL, EneX, EneY, EneZ );
    njRotateY( NULL, EneAngY );
    njCnkEasyMultiDrawMotion( &ENEMY1_MODEL, &ENEMY1_MOTION, frame );
    
    njPopMatrixEx();
}

備考


本関数は0番スロットのモーション情報構造体を使用します。
本関数を呼び出すとカレントモーション情報構造体は0番スロットに設定されます。

参照

njLightMotion() ライトモーションの実行

njLightAction
COPYRIGHT © SEGA ENTERPRISES, LTD., 1998-2000