sample\hgimg4\light_test5eff.hsp » Plain Format
#include "hgimg4.as"
#include "mod_posteffect.as"
title "HGIMG4 Test"
; ポイントライト色変化テスト
; マウス/タッチドラッグでカメラを動かすことができます
;
randomize
gpreset
post_reset
post_select POSTID_GLOW2 ; ポストエフェクト設定
post_setprm 192,0.55,6 ; ポストエフェクトのパラメーター
gpresetlight 1,1 ; ポイントライトを1個追加する
setcolor GPOBJ_LIGHT, 0.8,0.8,0.8 ; 標準ライトカラーを設定
setdir GPOBJ_LIGHT, 0.2,0.2,0.2 ; 標準アンビエントカラーを設定
; nullライトとして設定します
gpnull id_model
gplight id_model, GPOBJ_LGTOPT_POINT,10 ; ポイントライトとして設定する
setcolor id_model, 1,1,1 ; ライトカラーを設定
gpuselight id_model ; ポイントライトを使用する
setpos id_model,0,5,0
; イベントリストを登録
;
newevent ev1 ; 新しいイベントIDを取得
event_addang ev1, 0.02, 0.02, 0 ; 少しずつ回転する
event_wait ev1, 1
event_jump ev1
; モデルをたくさん配置する
;
i=-1
mdx=10:mdz=10 ; X,Z方向の個数
px=20.0/mdx:pz=20.0/mdz ; 間隔を計算する
z=-10.0 ; 配置開始Z座標
repeat mdz
x=-10.0 ; 配置開始X座標
repeat mdx
if i<0 {
;gpload id_base,"res/duck" ; モデル読み込み
gpbox id_base, 1, $c0c0c0 ; 箱ノードを生成する
i=id_base
} else {
gpclone i, id_base ; クローンでモデルを作成する
}
y=rnd(11)+2
setpos i, x,y,z
setangr i, rnd(256),rnd(256)
setevent i,ev1
x+=px
loop
z+=pz
loop
gpfloor id_floor, 40,40, $606060 ; 床ノードを追加
camang = 0.0
camdist = 10.0
speed = 0.01
camy=3.0
hval=0
*main
stick key,15+256
if key&128 : end
if key&2 : camy-=0.025
if key&8 : camy+=0.025
camang+=speed
camx=sin(camang)*camdist
camz=cos(camang)*camdist
setpos GPOBJ_CAMERA, camx,camy,camz ; カメラ位置を設定
gplookat GPOBJ_CAMERA, 0,5,0 ; カメラから指定した座標を見る
; ライトの色を変化させる
; hsvcolorの値をRGB値に変換する
hsvcolor hval,255,255
hval+:if hval>192 : hval=0
rval=double(ginfo_r)/255.0
gval=double(ginfo_g)/255.0
bval=double(ginfo_b)/255.0
setcolor id_model, rval,gval,bval ; ライトカラーを設定
addang id_model,0,0.02 ; ノード回転
post_drawstart ; 描画開始
rgbcolor $303030:boxf ; 背景クリア
gpdraw ; シーンの描画
gmode 0
color 255,255,255
pos 8,8:mes "HGIMG4 sample"
post_drawend ; 描画終了
await 1000/60 ; 待ち時間
goto *main