sample\hgimg3\elastic.hsp » Plain Format
#include "hgimg3.as" ; waveサンプル ; (Meshを使って波紋をシミュレートする) randomize screen 0,640,480,0 cls 4 hgini ; バッファサイズ sx=32:sy=32 dim vmap,sx+1,sy+1 wave_init sx,sy ; テクスチャフォント表示の準備 ; setfont 16,16,12,1 ; font Tex select(cx,cy,px,mode) texload "fontchr.bmp" ; フォントテクスチャの登録 ; モデル登録 ; setuv 0,0,128,128 addmesh m_mesh,sx,sy,0,32,32 texload "chrome.bmp" regobj obj, m_mesh ; 表示の準備 ; clscolor $c0c0c0 ; 背景色の設定 cammode CAM_MODE_LOOKAT setpos HGOBJ_CAMERA, 0,-20,30 ; カメラ位置の設定 frame=0 scfade=0 scfadev=256 gosub *fadein *main ; ランダムに波紋を起こす ; i=frame&31 if i<1 { x=rnd(sx-4)+2 : y=rnd(sy-4)+2 wave_set x,y,50,1 } wave_apply vmap,1 meshmap vmap,m_mesh,0,0.05 gosub *alldraw stick key,$3ff if key&128 : goto *main2 ; カーソルキーで動かす ; if key&1 : addpos HGOBJ_CAMERA, -0.2, 0.0 if key&4 : addpos HGOBJ_CAMERA, 0.2, 0.0 if key&8 : addpos HGOBJ_CAMERA, 0.0, 0.2 if key&2 : addpos HGOBJ_CAMERA, 0.0, -0.2 goto *main *main2 gosub *fadeout repeat gosub *alldraw if scfadev=256 : break loop *owari end *alldraw ; フレーム描画のサブルーチン ; hgdraw ; 描画 fprt "Frame:"+frame,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