sample\hgimg3\meshmap4.hsp » Plain Format
#include "hgimg3.as"
; mesh gravityサンプル
; (重力を考慮した動きを付加する)
; (eprimを使用した影の表示を行なう)
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" ; フォントテクスチャの登録
; モデル登録(目玉)
;
addxfile m_xmodel,"eye.x"
regobj mychr, m_xmodel,OBJ_BORDER|OBJ_FLIP|OBJ_STAND|OBJ_MOVE|OBJ_GRAVITY
objfloor mychr,8 ; 地面からのオフセット値を指定する
; モデル登録(影)
addeprim m_sd,EPRIM_CIRCLE
seteprim m_sd,0,2
seteprim m_sd,1,12
seteprim m_sd,2,4
seteprim m_sd,3,4
seteprim m_sd,16,$80000000
seteprim m_sd,17,$80000000
seteprim m_sd,18,$80000000
seteprim m_sd,19,$00000000
regobj mysdw, m_sd, OBJ_LATE|OBJ_LAND|OBJ_STAND ; 半透明なのでOBJ_LATEを指定する
setefx mysdw,$500 ; 半透明(色減算)の指定
objchild mychr, mysdw ; 目玉の子供として影を登録
; モデル登録(地面)
;
setuv 0,0,128,128
addmesh m_mesh,sx,sy,0,160,160
texload "mapbg4.bmp"
regobj obj, m_mesh,OBJ_GROUND ; 地面として登録
setborder 150,150,150 ; 移動範囲の設定
; 高さ、UVマップの設定
;
gsel 3
picload "g_road.bmp"
getvarmap vmap,sx,sy,1
picload "g_river.bmp"
getvarmap vmap,sx,sy,2
meshmap vmap,m_mesh,$100
picload "g_height1.bmp"
getvarmap vmap,sx,sy
meshmap vmap,m_mesh,0,0.1
; 表示の準備
;
gsel 0
clscolor $60e0 ; 背景色の設定
setpos HGOBJ_CAMERA, 0,-60,150 ; カメラ位置の設定
setangr HGOBJ_CAMERA, -15,0,0 ; カメラ角度の設定
frame=0
scfade=0
scfadev=256
gosub *fadein
*main
gosub *alldraw
stick key,$3ff
if key&128 : goto *main2
; カーソルキーで動かす
; (オブジェクトの移動量を変えることで動かしている)
;
if key&2 : adddir mychr,0,0,-0.1
if key&8 : adddir mychr,0,0,0.1
if key&1 : adddir mychr,-0.1,0,0
if key&4 : adddir mychr,0.1,0,0
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