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