sample\sample_hgimg4\
sample08_hgimg4.hsp
#include "hgimg4.as"
#include "hsp3dish.as"
#include "ezlocal-dish-js.hsp"
ezLocalJS
title "HGIMG4 Test"
;
; HSP3同梱サンプル掛け合わせ
; sample\hgimg4\ test11.hsp + tamane2.hsp
;
; 物理エンジンテスト
; スペースキーまたはクリックで新しい箱を落とします
;
randomize
gpreset
setcls CLSMODE_SOLID, $808080 ; 画面クリア設定
setpos GPOBJ_CAMERA, 0,1,5 ; カメラ位置を設定
gplookat GPOBJ_CAMERA, 0,0.3,0 ; カメラから指定した座標を見る
gptexmat id_texmat, "res/qbox.png"
gpbox id_box, 0.5, -1, id_texmat ; 箱ノードを追加
setpos id_box, 0, 3, 0
gppbind id_box, 1, 0.5 ; 箱の物理設定を行なう
gpfloor id_floor, 30,30, $404040 ; 床ノードを追加
gppbind id_floor, 0 ; 床の物理設定を行なう
exec {"
HEAP32["}+varptr(ENV_HSP_SX)+{" >> 2] = ENV.HSP_SX;
HEAP32["}+varptr(ENV_HSP_SY)+{" >> 2] = ENV.HSP_SY;
"}
repeat
stick key,15
if key&128 : end
redraw 0 ; 描画開始
; タッチでカメラ位置を動かす
if dragmd { ; ドラッグ中
getkey a,1
if a=1 {
dx=0.05*(dragx-mousex)+cx
dy=0.05*(mousey-dragy)+cy
setpos GPOBJ_CAMERA, dx,dy,cz
} else {
dragmd=0
}
} else { ; ドラッグなし
getkey a,1
if a {
dragx=mousex:dragy=mousey
getpos GPOBJ_CAMERA, cx,cy,cz
dragmd=1
}
}
gplookat GPOBJ_CAMERA, 0,0.3,0 ; カメラから指定した座標を見る
; スペースキーまたはクリックで箱を追加
if key&$110 {
gpclone i, id_box ; 最初の箱をクローン
x=0.02*rnd(20)-0.2:z=0.02*rnd(20)-0.2
setpos i, x, 3, z ; 落とす位置を微調整
gppbind i, 1, 0.5 ; 箱の物理設定を行なう
}
gpdraw ; シーンの描画
py=sin(0.1*cnt)*32
color 255 ; サイズ感を把握するための枠線
line 0,0,380,0 : line 0,0,0,700
line 10,10,380,10 : line 10,10,10,700
line 100,799,479,799 : line 479,200,479,799
line 100,789,469,789 : line 469,200,469,789
color 255,255,255
pos 8,8:mes "HGIMG4 sample"
mes "ENV.HSP_WX=480 : ENV.HSP_WY=800"
mes "ENV.HSP_SX="+ENV_HSP_SX+" : ENV.HSP_SY="+ENV_HSP_SY
mes strf("mouse xy : (%d,%d)",mousex,mousey)
mes strf("dragstart : (%d,%d)",dragx,dragy)
mtlist touchid
repeat stat
mtinfo touch,touchid(cnt)
mes "mtinfo("+cnt+") : "+touch(1)+", "+touch(2)+" @ "+touch(3)
loop
redraw 1 ; 描画終了
await 1000/60 ; 待ち時間
loop