sample\hgimg3\objsort.hsp » Plain Format
#include "hgimg3.as" ; オブジェクトソート・サンプル ; (スペースキーでソートON/OFFを切り替えられます) ; randomize screen 0,640,480,0 cls 4 smode=0 sdim sortprt,64,2 sortprt(0)="SORT:OFF" sortprt(1)="SORT:ON" fobj=-1 lobj=-1 *boot hgini ; テクスチャフォント表示の準備 ; setfont 16,16,12,1 ; font Tex select(cx,cy,px,mode) texload "fontchr.bmp" ; フォントテクスチャの登録 ; Xモデル登録 ; addxfile m_xmodel,"font_a.x" ; モデルを読み込む z=10.0 repeat 5 regobj xobj, m_xmodel ; オブジェクトの登録 setpos xobj, rnd(20)-10, rnd(20)-10, z ; 初期座標を設定 setefx xobj, $80 z-=1.5 if cnt=0 : fobj=xobj loop ; モデル登録 ; setuv 0,0,256,256 addplate m_plate,1,3,3 texload2 "tree.tga" ; オブジェクトの登録 ; z=20.0 repeat 50 regobj obj, m_plate ; オブジェクトの登録 setpos obj, rnd(20)-10, rnd(20)-10, rnd(30)-10 ; 初期座標を設定 ;setpos obj, rnd(20)-10, rnd(20)-10, z ; 初期座標を設定 ;setefx obj, $2ff z-=0.5 lobj=obj loop ; 表示の準備 ; clscolor $80 ; 背景色の設定 setpos HGOBJ_CAMERA, 0,-5,30 ; カメラ位置の設定 frame=0 scfade=0 scfadev=256 gosub *fadein *main gosub *alldraw stick key,15+64 if key&128 : goto *main2 if key&$30 : gosub *excmode ; カメラをカーソルキーで動かす ; if key&4 : addpos HGOBJ_CAMERA, -0.2, 0.0 if key&1 : addpos HGOBJ_CAMERA, 0.2, 0.0 if key&64 { if key&2 : addpos HGOBJ_CAMERA, 0,0, 0.2 if key&8 : addpos HGOBJ_CAMERA, 0,0, -0.2 } else { if key&2 : addpos HGOBJ_CAMERA, 0, 0.2 if key&8 : addpos HGOBJ_CAMERA, 0, -0.2 } goto *main *excmode smode=smode^1 obj=fobj repeat lobj-fobj+1 if smode { setobjmode obj, OBJ_SORT, 0 } else { setobjmode obj, OBJ_SORT, 1 } obj++ loop return *main2 gosub *fadeout repeat gosub *alldraw if scfadev=256 : break loop *owari end *alldraw ; フレーム描画のサブルーチン ; hgdraw ; 描画 fprt sortprt(smode),8,8 if scfade { ; フェード処理 scfadev += scfade if scfadev>255 : scfadev=256 if scfadev<1 : scfadev=0 : scfade=0 color 0,0,0:gmode 3,640,480,scfadev hgrect 320,240,0 } hgsync 15 ; 時間待ち frame++ return *fadein scfade=-4 return *fadeout scfade=4 return