es_effectを使うならこんな感じ
#include "hspdx.as"
wx=640:wy=480
es_ini ; system初期化
es_screen wx,wy,32,,1,1 ; スクリーン初期化
chrsx=64:chrsy=64 ; キャラクタのサイズを指定
buffer 3
picload "testchr.bmp"
es_buffer 0,2,,,1
es_size 64,64,60
es_pat 0, 0,64
buffer 2,100,10
es_buffer 1,2,,,1
es_size 100,10,0
es_pat 10, 0,0 //ゲージキャラクタNOを10に設定
es_area -64,-64,wx,wy ; 画面ボーダー設定
gsel 0,1
es_cls
es_sync
wait 100
repeat 10
gosub *setpat
loop
*gmain
es_cls 50,50,50
stick ky,$1f ; キーの情報を取得
if ky&$e0 : goto *owari ; [ESC]中断チェック
repeat kilcnt //削除された分補充
gosub *setpat
loop
kilcnt=0
no=0 //検索開始ナンバー
repeat
es_find no,2,no,10
if no<0 {break}
hp(no)-rnd(2)
if hp(no)<0 {
es_kill no
es_kill no+100
no++
kilcnt++
continue
}
es_get spx,no,ESI_POSX_INT
es_get spy,no,ESI_POSY_INT
es_pos no+100,spx,spy-30 //キャラの座標を基にゲージの座標を設定
hsvcolor hp(no)/2,255,255
es_effect no+100,hp(no),10,,,,ESB_ALPHA,255,ginfo_r<<16 | ginfo_g<<8 | ginfo_b
no++ //検索が無限ループしないように次の検索を一つずらす
loop
es_draw
es_sync 15
await 0
goto *gmain
*setpat
a=rnd(64):spd=rnd(10)*25+100
x=rnd(640):y=rnd(480)
es_new no,0
es_set no,x,y,0
es_type no,2
es_adir no,a,spd
es_flag no,$6200
hp(no)=rnd(100)
es_set no+100,x,y-30,10 //キャラのスプライトナンバーに100足したのをゲージスプライトナンバーで使用
es_flag no+100,$1000
return
*owari
es_bye
end