Ninjaライブラリ - スプライト関数

njDrawSprite3D

3Dスプライトの描画

書式

void njDrawSprite3D( *sp, n, attr ) 
NJS_SPRITE *sp 
Int n 
Uint32 attr 

引数

*sp   スプライト構造体へのポインタ
 スプライト番号
attr   アトリビュート

戻り値

なし

解説

3Dのスプライトを描画します。 スプライトは簡単にテクスチャや、そのアニメーションを描画することができます。 スプライトはXYZ空間に描画されます。

アトリビュートは以下の設定が可能です。

 NJD_SPRITE_ANGLE   テクスチャの回転を有効にする 
 NJD_SPRITE_COLOR   テクスチャのカラー演算を有効にする。カラーデータはnjSetConstantMaterial()でセットした値 
 NJD_SPRITE_HFLIP   テクスチャを左右反転する 
 NJD_SPRITE_VFLIP   テクスチャを上下左右反転する 
 NJD_SPRITE_ALPHA   半透明や抜きテクスチャ(パンチスルー)を使用する場合セットする 
 NJD_SPRITE_SCALE   常に画面正面を向く 


用例

256×256のテクスチャを2枚使用し、それぞれ4分割して
8つのテクスチャアニメーションパターンを作成します。
NJS_TEXANIM anim[] = {
 { 128,128, 64, 64, 0, 0,127,127, 0, 0 },
 { 128,128, 64, 64,128, 0,255,127, 0, 0 },
 { 128,128, 64, 64, 0,128,127,255, 0, 0 },
 { 128,128, 64, 64,128,128,255,255, 0, 0 },
 { 128,128, 64, 64, 0, 0,127,127, 1, 0 },
 { 128,128, 64, 64,128, 0,255,127, 1, 0 },
 { 128,128, 64, 64, 0,128,127,255, 1, 0 },
 { 128,128, 64, 64,128,128,255,255, 1, 0 },
};
main() {
 NJS_SPRITE sprite;
/* 各種初期設定 */
 sprite.tlist = &texlist;
 sprite.tanim = anim;
 sprite.ang = 0;
 sprite.sx = 1.0f;
 sprite.sy = 1.0f;
 sprite.p.x = 0.0f;
 sprite.p.y = 0.0f;
 sprite.p.z = 0.0f;
	:
 njInitSystem( NJD_RESOLUTION_640x480_NTSCNI,
		NJD_FRAMEBUFFER_MODE_RGB565, 1 );
	:
 njInitMatrix( matrix, 128, 0 );
 njInit3D( vbuf, 4096 );
 njInitView( &view );
 njCreateLight( &light, NJD_DIR_LIGHT );
 njSetView( &view );

 njInitTexture( texmemlist,20);
 njLoadTexture(&texlist);

 while(1) {
  njClearMatrix();
  njTranslate( NULL, 0.f, 0.f, -400.f );
  njDrawSprite3D( &sprite, 2, NJD_SPRITE_ANGLE );
  sprite.angle += 100;
  	:
 }
}

参照

njDrawSprite2D()
njSetConstantMaterial()
njLoadTexture()
njDrawModel()

njDrawSprite3D
COPYRIGHT © SEGA ENTERPRISES, LTD., 1998,1999