とりあえず。

HSP3.2で作ってみる

HSP2の時にHGIMGを触ったことあって、久々にやってみようかな

BBの財布リペアの一環として、、、


HSPのsampleをいじってみた


さぁここから

やってみます


-----------------------------------------------------------------------------------------


#include "hgimg3.as"

#const COL_MY 1
#const COL_TREE 2

;
randomize
screen 0,640,480,0
cls 4
hgini

; バッファサイズ
sx=32:sy=32
dim vmap,sx+1,sy+1

; モデル登録(目玉)
;
addxfile m_xmodel,"eye.x"
modelcols m_xmodel, 20,20,20 ; コリジョンx,y,zサイズ
modelcols m_xmodel, 0,20,18,1 ; コリジョンweight,y,zサイズ

; 目玉をn個配置
repeat 5
gosub *newobj
loop

; モデル登録(木)
;
texload2 "tree.tga" ; テクスチャの登録
addplate m_tree,1,15,30,0,0,255,255,stat ; モデル登録
modelcols m_tree, 10,10,10 ; コリジョンx,y,zサイズ
modelcols m_tree, 1,22,10,1 ; コリジョンweight,y,zサイズ
regobj tree, m_tree, OBJ_STATIC|OBJ_TREE|OBJ_LATE
objfloor tree, 15
setcoli tree,COL_TREE
setpos tree, 0, -10, 20

; モデル登録(地面)
;
setuv 0,0,128,128
addmesh m_mesh,sx,sy,0,320,320
texload "mapbg4.bmp"
regobj obj, m_mesh,OBJ_GROUND ; 地面として登録
setborder 300,300,300 ; 移動範囲の設定

; 高さ、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_height2.bmp"
getvarmap vmap,sx,sy
meshmap vmap,m_mesh,0,0.1


; 表示の準備
;
gsel 0
clscolor $60e0 ; 背景色の設定

; カメラの設定
;
ddim fv,4
camdist=100.0
camheight=-35.0

pos 295,215 ;画面中央にボタンを配置
objsize 50,50
button "start",*premain : stop

*premain
mouse -1
clrobj


*main
gosub *alldraw
gosub *memove
goto *main

*memove
stick key,$3ff
if key&128 : end

; カーソルキーで動かす
if key&2 : dp=-1 : gosub *go_fwd
if key&8 : dp=1 : gosub *go_fwd
if key&1 : dp=-1 : gosub *go_side
if key&4 : dp=1 : gosub *go_side

;マウスで方向を変える
mausuX0=mousex : mausuY0=mousey
if mausuX1>mausuX0 : addang mychr,0,0.05,0 : addang HGOBJ_CAMERA,0,0.05,0
if mausuX1<mausuX0 : addang mychr,0,-0.05,0 : addang HGOBJ_CAMERA,0,-0.05,0
if mausuY1>mausuY0 : addang mychr,0.01,0,0 : addang HGOBJ_CAMERA,0.01,0,0
if mausuY1<mausuY0 : addang mychr,-0.01,0,0 : addang HGOBJ_CAMERA,-0.01,0,0
mausuX1=mousex : mausuY1=mousey

getang mychr,Mxang,Myang,Mzang
getpos mychr,Mx,My,Mz
getang HGOBJ_CAMERA,Cx,Cy,Cz
setpos HGOBJ_CAMERA, sin(Cy)*camdist+Mx,camheight,cos(Cy)*camdist+Mz ; カメラ位置の設定

return

*go_fwd
; 移動
;
getang mychr, fv,fv(1),fv(2)
fv(1)*=-1:fvdir fv,0,0,dp
objwalk vres,mychr,fv,1,fv(2)

return

*go_side
getang mychr, fv,fv(1),fv(2)
fv(1)*=-1:fvdir fv,dp,0,0
objwalk vres,mychr,fv,1,fv(2)
return

*newobj
; 目玉を1つ出すサブルーチン
;
x=rnd(100)-50:z=rnd(100)-50
regobj mychr, m_xmodel,OBJ_BORDER|OBJ_FLIP|OBJ_STAND|OBJ_MOVE|OBJ_GRAVITY|OBJ_STATIC
setpos mychr,x,-30,z
objfloor mychr,8 ; 地面からのオフセット値を指定する
setcoli mychr,COL_MY,COL_MY|COL_TREE

return

*alldraw
; フレーム描画のサブルーチン
;
hgdraw ; 描画
hgsync 15 ; 時間待ち

return