流れとしてはこんな感じ
#include "hspdx.as"
es_ini ; system初期化
es_screen 640,480,32,,1,1 ; スクリーン初期化(Direct3D使用)
if stat :end
dxbid=0
animf=20 //アニメーションフレーム数
buffer 1
picload dir_exe+"\\hsptv\\hsptv_img.bmp"
divx=ginfo_sx/64
divy=ginfo_sy/64
es_buffer dxbid,0,-1,0,1 //テクスチャ使用
//celdivの相当役割
es_size 64,64,100,0
repeat divx*divy
es_expat cnt,dxbid,64*(cnt\divx),64*(cnt/divx),animf
loop
myx=200
myy=100
animid=divx*3 //4段目からアニメーションキャラがあるので
repeat divx
py=myy+cnt*30
es_set cnt,myx+cnt*20,py,animid,1,-py //Direct3D使用//Y座標を反転して優先度に設定
es_setp cnt,25,0.1*(py-240)+64 //Y座標をカメラからの距離として使用
es_setp cnt,26,0.1*(py-240)+64
//アニメ−ションリンク
es_link animid,animid+1
es_link animid+1,animid
animid+2
loop
animid=divx*3
es_set 0,300,200,animid,1,0 //Direct3D使用
gsel 0
repeat
stick ky,$1f
if ky&$80 : end
if ky&1 {myx-4}
if ky&4 {myx+4}
if ky&2 {myy-4}
if ky&8 {myy+4}
es_pos 0,myx,myy
es_setpri 0,-myy //Y座標を反転して優先度に設定
es_setp 0,25,0.1*(myy-240)+64 //Y座標をカメラからの距離として中心より上なら小さく下なら大きくなるように
es_setp 0,26,0.1*(myy-240)+64
es_cls 0,0,255 ; 青でクリア
es_draw ,,,1 ; 優先順位有効でスプライト描画
es_sync 16
await 0
loop