スプライト制御 (98年2月11日版)


SetSpriteBkMode スプライトの透明化を行うかどうかの指定を行います
InitSprite スプライト管理領域を初期化します
EnableSprite スプライトの表示可否を指定します
MoveSprite スプライトの表示位置を指定します
MapSprite スプライトにスプライトバッファを結び付けます

VOID SetSpriteBkMode (no, flg)

LONG no 設定するスプライト番号を指定します ( no >= 0 )
LONG flg スプライトの背景の透明の指示フラグ ( def = TRUE)

表示するスプライトの背景の透明化の可否を指示します。この関数は主にグラフィックボードにより透明化(カラーキー転送)をする・しないによる処理速度の違いが確定的な場合でかつPCGとして利用する場合に特に使用するもので現在のグラフィックボードではわざわざ指示してもパフォーマンスの改善はないと思われます。当方で改善が確認されているのはMatroxのMilleniumだけです。

 パラメータ 

説明
no 指示するスプライト管理番号で InitSpriteで確保した管理領域範囲内となります。
flg TRUE = 透明化(スプライトとして利用) FALSE = 非透明化(PCGとして利用)この場合は透明色RGB(0,0,0)が黒で表示され透明(背景が透ける)にはなりません。
   

戻り値

無し

備考

 

参照

 

 


VOID InitSprite (max)

LONG max 確保する管理領域の数を指定します ( max >= 0 )

使用するスプライトの管理領域を確保します。ここでいう管理領域の数とは一画面内で表示するスプライト最大数であり、実行中は変更できませんので注意が必要です。また内部ではスプライトのプロパティ管理領域が設定されるだけでまだスプライトの表示はできません。これを指定した後 MapSpriteでスプライトとバッファを結び付ける必要があります。

 パラメータ 

説明
max VVRAM内部管理用の物ですのでそのアプリケーションで使用すると思われる最大数を指定して下さい。スプライトを動的に再利用するような場合はその範囲内で行います。通常は128512個程度あれば十分だと思われます。バッファの関理領域の数と一致する必要はありません。確保するメモリ種別としてビデオカードのメモリは使用しません。基本的に処理速度には影響はありませんがむやみに大きい値は禁物です。
   

戻り値

無し

備考

 

参照

 

VOID EnableSprite (no,flg)

LONG no 設定するスプライト管理番号を指定します (no >= 0)
LONG flg 表示可否を指定するフラグ (def = FALSE)

最終的にディスプレイに表示されるかどうかを決定する関数です。表示される必要が無いならば必ずFALSEに指定するようにしてください。そうすることで無駄な処理を(描画時において実際はクリッピングもされますので極力回避できますが)省けパフォーマンスアップに貢献します。スプライトを画面から隠すときに負の座標に指定したりする方法よりこちらを利用してください。

 パラメータ 

説明
no 設定するスプライト管理番号を指定します。指定できる番号の範囲は InitSpriteで確保した管理領域範囲内となります。
flg 表示可否を指定するフラグで FALSEにする事で表示されなくなります。
   

戻り値

無し

備考

 

参照

 

VOID MoveSprite (LONG no, LONG x, LONG y)

LONG no 設定するスプライト管理番号を指定します (no >= 0)
LONG x X座標の表示位置を指定します
LONG y Y座標の表示位置を指定します

最終的にディスプレイに表示されるか時の表示位置を指定します。パターンが画面の外にはみ出る場合は自動的にクリッピングされます。

 パラメータ 

説明
no 設定するスプライト管理番号を指定します。指定できる番号の範囲は InitSpriteで確保した管理領域範囲内となります。
x X座標位置
y Y座標位置
   

戻り値

無し

備考

 

参照

 

VOID MapSprite (spriteno, spritebufferno)
VOID MapSprite (spriteno, spritebufferno, src)

LONG spriteno 設定するスプライト管理番号を指定します (spriteno >= 0)
LONG spritebufferno 指定するスプライトバッファ番号を指定します (spritebufferno >= 0)
RECT* src バッファの特定の領域をスプライトに使用する場合に矩形を指定します

スプライト管理領域とスプライトバッファを結び付けます。これを指示しないとスプライトは何のスプライトを表示していいか(データ、サイズ等)が不明になってしまいます。指定しないとデフォルトでスプライトバッファ番号0の全領域になってしまいます。 領域の指定の利用方法としては通常はパターンテーブルビットマップに複数のパターンデータを記録しておき、その特定の領域をスプライトして指定します。

例)■が 16*16dotで1パターンでデータファイルが 64*64dotで 16種類のパターンを記録する時は以下の様なイメージになります。

■■■■ (0番から3番)
■■■■ (4番から7番)
■■■■ (8番から11番)
■■■■ (12番から15番)

 パラメータ 

説明
spriteno 設定するスプライト管理番号を指定します。指定できる番号の範囲は InitSpriteで確保した管理領域範囲内となります。
spritebufferno 作成するスプライトバッファ番号を指定します。指定できる番号の範囲は InitSpriteBufferで確保した管理領域範囲内となります。
src バッファの特定の領域を指定します。
   

戻り値

無し

備考

 

参照