描画処理でそれっぽい部分を描いてみます。
//オフスクリーンバッファ初期化
#const bufx 480
#const bufy 360
#define TRANSCOLOR $000000
#define TEXTUREFlag 1
buffer 1,640,480;画像
picload "img.bmp"
gsel 1
es_buffer 1,0,TRANSCOLOR,,TEXTUREFlag
buffer 2,bufx,bufy;拡大用/非テクスチャ
gsel 2
es_buffer 2,0,TRANSCOLOR,,0
buffer 3,bufx,bufy;font
gsel 3:color 0,0,0:boxf
picload "img_fnt.bmp"
es_buffer 3,0,TRANSCOLOR,,0
TEXTBUF_R=3
buffer 4,bufx,bufy;font write
gsel 4:color 0,0,0:boxf
es_buffer 4,0,TRANSCOLOR,,0
TEXTBUF_W=4
es_bufferの引数にサイズを指定するものがなかったので、
bufferで指定したサイズに依存すると思い、bufferに使いたいサイズを指定。
//画面クリア
es_cls 0,0,0
//キャラ描写
gmode 2
foreach chax
pos chax(cnt),chay(cnt)
es_excopy 1,32,32,32,32,32,32,,,1000,ESB_ALPHA,100,$FFFF77
loop
//自機描写
pos mex-mesize/2,mey-mesize/2
es_excopy 1,n,0,32,32,64,64,,,0,ESB_ALPHA,50,$FFFFFF
pos mex,mey
if mesx=0:n=0:else:if mesx<0:n=32:else:n=64
es_excopy 1,n,0,32,32,32,32,,,0,,255,$FFFFFF
//図形
es_exboxf winx-10,0,winx,winy,$0000ff,,,,ESB_ALPHA,100,,,
es_exboxf 0,0,100,winy,$ffffff,,,,ESB_ALPHA,100,,,
color rnd(255),rnd(255),rnd(255)
es_exboxf 80,winy,90,rnd(winy),$00ff00,,,,ESB_ALPHA,100,,,
//テキスト
pos 0,20:gmode 2
es_copy 4,0,0,bufx,bufy
//FPSカウント
oldsec=sec:sec=gettime(6)
if oldsec=sec:fpscnt++:else:fps=fpscnt:fpscnt=0
pos 0,0:es_mes "FPS"+str(fps),-2
描写テストの為に1000体のキャラ(配列変数chax,chay)で32*32サイズの画像を
es_excopyを用いて半透明合成・Z軸回転・色成分調整で貼付け。
半透明boxfやフォントや色を指定できないやや高速な方のes_mesを少し利用。