Ninja Library - 描画関数

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;
/* Initial setup of each type */
 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);
 njInit3D( vbuf, 4096 );
 njCreateLight( &light, NJD_DIR_LIGHT );
 
 njInitTextureEx( texmng,20,texsys,20);
 nuLoadTexture(&texlist);
 
 while(1) {
  njTranslate( NULL, 0.f, 0.f, -400.f );
  njDrawSprite3D( &sprite, 2, NJD_SPRITE_ANGLE );
  sprite.angle += 100;
  	:
 }
}

参照

njDrawSprite2D() 2Dスプライトの描画
njSetConstantMaterial() モデルマテリアルの設定
nuLoadTexture() テクスチャのロード(完了復帰)

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