グラフィック関数 - 2D描画関数

njDrawSprite3D

3Dスプライトの描画

書式

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常に画面正面を向く


用例

256x256のテクスチャを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;
 sbInitSystem( 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