es_draw

スプライト描画

es_draw p1,p2,p3,p4,p5

p1=描画開始スプライトNo.
p2(-1)=描画するスプライトの個数
p3(0)=処理保留フラグ
p4(-1)=優先順位の開始値
p5(-1)=優先順位の終了値

(プラグイン / モジュール : HSP3Dish)

解説

登録されているスプライトを画面に描画します。
通常は、 p1,p2のパラメータを省略して使用すれば、すべてのスプライトを描画することが可能です。必ずredraw 0~redraw 1の間に描画するようにしてください。

登録されているスプライトの一部だけを描画したい場合は、p1に開始スプライトNo.、p2に描画する個数を指定してください。
p1,p2の指定を省略した場合は、すべてのスプライトが描画対象になります。

p3パラメーターにより、内部処理を保留することができます。

 値     マクロ名          内容
------------------------------------------------------------------------
  0  ESDRAW_NORMAL        すべての処理を実行する
  1  ESDRAW_NOMOVE        移動処理を保留する
  2  ESDRAW_NOANIM        アニメーションを保留する
  4  ESDRAW_NOCALLBACK    コールバックルーチンを保留する
  8  ESDRAW_NODISP        表示を保留する
 16  ESDRAW_NOSORT        ソートを保留する

通常は、命令を実行すると、スプライト移動→アニメーション処理→表示処理→コールバック処理が実行されますが、それぞれの処理ごとに保留させることができます。
ESDRAW_NO*マクロは加算することで同時に指定することが可能です。
これにより一時的に移動やアニメーションを停止させることができます。通常は、p3パラメーターを省略しておいて問題ありません。

p4,p5パラメーターを指定すると、es_set命令やes_setpri命令で指定した優先順位が参照され、値の順にソートしてスプライトを描画します。その際に、p3~p4の範囲だけを描画させることが可能です。
p4,p5パラメーターを指定した場合は、スプライトの優先順位に従ってソートされ、優先順位の値が大きいものが手前に表示されます。(ただし、処理保留フラグにESDRAW_NOSORTが指定されている場合は、ソートを無効にします)
p4,p5パラメーターがマイナスか省略された場合は、優先順位の値は無視され、スプライトNo.が小さいほど手前の表示となります

この命令を実行するとシステム変数statに描画対象として認識されたスプライトの個数が返ります。

サンプル

*gmain
	stick ky,$1f				; キーの情報を取得
	if ky&$80 : goto *owari			; [ESC]中断チェック
	redraw 0				; 画面クリア
	es_draw 				; スプライト描画
	redraw 1 				; 画面の更新
	await 1000/60 				; Systemアイドル
	goto *gmain

関連項目

es_setスプライト設定(HSP3Dish)
es_setpriスプライト優先順位設定(HSP3Dish)
es_setgosubスプライト表示コールバック設定(HSP3Dish)

サンプル逆引き (10)

es_test1.hsp
es_test10.hsp
es_test2.hsp
es_test3.hsp
es_test4.hsp
es_test5.hsp
es_test6.hsp
es_test7.hsp
es_test8.hsp
es_test9.hsp

情報

プラグイン / モジュールHSP3Dish
バージョン3.6
作成日2020/09/03
著作者onitama
URLhttp://hsp.tv/
備考hsp3dish.asをインクルードすること。
タイプ拡張命令
グループ拡張画面制御命令
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\sprite.hs