void njDrawSprite3D( sp, n, attr )
NJS_SPRITE *sp
Int n
Uint32 attr
sp スプライト構造体へのポインタ n スプライト番号 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() テクスチャのロード(完了復帰)