light_test4.hsp

sample\hgimg4\light_test4.hsp » Plain Format

#include "hgimg4.as"

title "HGIMG4 Test"

	;	スポットライトテスト
	;	マウス/タッチドラッグでライトの方向を動かすことができます
	;
	randomize

	gpreset
	gpresetlight 1,0,1			; スポットライトを1個追加する
	setcls CLSMODE_SOLID, $404040		; 背景色

	setcolor GPOBJ_LIGHT, 0.1,0.1,0.5	; 標準ライトカラーを設定
	setdir GPOBJ_LIGHT, 0.2,0.2,0.2		; 標準アンビエントカラーを設定

	gpnull id_light				; ノードを生成する
	gplight id_light, GPOBJ_LGTOPT_SPOT,10	; スポットライトとして設定する
	setcolor id_light, 1,1,1		; ライトカラーを設定
	setpos id_light,0,3,0

	gpuselight id_light			; スポットライトを使用する


	;	モデルをたくさん配置する
	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 {
			gpbox id_base, 1	; 箱ノードを生成する
			i=id_base
		} else {
			gpclone i, id_base	; クローンでモデルを作成する
		}
		setpos i, x,1,z
		x+=px
	loop
	z+=pz
	loop

	gpfloor id_floor, 40,40, $8080ff	; 床ノードを追加

	setpos GPOBJ_CAMERA, -6.75,13.5,3.0	; カメラ位置を設定
	gplookat GPOBJ_CAMERA, 0,1.8,0		; カメラから指定した座標を見る


	px=0.0:pz=0.0

*main
	stick key,15+256
	if key&128 : end

	if key&256 {
		px=double(mousex)/ginfo_sx*20-10
		pz=double(mousey)/ginfo_sy*20-10
	}
	gplookat id_light,px,0,pz		; ライトの方向を設定する

	redraw 0			; 描画開始

	gpdraw				; シーンの描画

	color 255,255,255
	pos 8,8:mes "HGIMG4 sample"

	redraw 1			; 描画終了
	await 1000/60			; 待ち時間

	goto *main