njDrawSprite3D
| |
3Dスプライトの描画 |
#include <Ninja.h> void njDrawSprite3D( sp, n, attr ) NJS_SPRITE *sp Int n Uint32 attr
スプライトはXYZ空間に描画されます。
アトリビュートは以下の設定が可能です。
NJD_SPRITE_ANGLE | テクスチャの回転を有効にします。 |
NJD_SPRITE_COLOR | テクスチャのカラー演算を有効にします。 カラーデータはnjSetConstantMaterial()でセットした値を使います。 |
NJD_SPRITE_HFLIP | テクスチャを左右反転します。 |
NJD_SPRITE_VFLIP | テクスチャを上下左右反転します。 |
NJD_SPRITE_ALPHA | 半透明を使用する場合にセットします。抜きテクスチャの場合でもセットします。 |
NJD_SPRITE_SCALE | 常に画面正面を向きます。 |
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; ...... } }
njDrawSprite3D |