sample_12_anitexture.hsp

sample\d3module\sample_12_anitexture.hsp » Plain Format

;============================================================
;                                                 2005/--/--
;	d3module  sample script
;	for HSP 3.0
;
;============================================================
;
; 仮想画面に d3module で描画を行い、それを実画面での
; テクスチャとして使用するサンプルです。
;
; 複数のスクリーンへの描画を行う場合は、スクリーンを切り替える
; ごとに d3setcam 命令でカメラ情報を更新してください。
;
;============================================================

#include "d3m.hsp"

	title "S.Programs d3module sample"

	TEX_SIZE = 256 ; 使用するテクスチャの大きさ


	; テクスチャを格納する仮想スクリーン

	buffer 2, TEX_SIZE, TEX_SIZE, 0


	gsel 0

	time_start = d3timer()


*mainloop

	; ループタイマー
	time = d3timer() - time_start


	; フレームレートを表示
	title "fps = " + d3getfps()



	;------------------------------------------------------------
	; texture-screen

	gsel 2

	color : boxf


	; カメラ座標を回転させる
	d3setcam cos(0.002 * time) * 2000, sin(0.002 * time) * 2000, cos(0.001 * time) * 1000


	gmode 5, , , 128 ; 面を描画するときのコピーモードを設定

	r = 500
	x = -r,  r,  r, -r
	y = -r, -r,  r,  r
	z = -r, -r, -r, -r
	s =  r,  r,  r,  r

	; キューブ表示
	color 127, 255, 255
	d3square  x, y, z
	d3square  x, y, s

	color 96, 192, 192
	d3square z, x, y
	d3square s, x, y

	color 63, 127, 127
	d3square y, z, x
	d3square y, s, x



	;------------------------------------------------------------
	; real-screen

	gsel 0
	redraw 0

	color : boxf


	; カメラ座標を回転させる
	d3setcam cos(0.001 * time) * 2000, sin(0.001 * time) * 2000, cos(0.0005 * time) * 1000


	gmode 5, , , 192 ; 面を描画するときのコピーモードを設定

	r = 500
	x = -r,  r,  r, -r
	y = -r, -r,  r,  r
	z = -r, -r, -r, -r
	s =  r,  r,  r,  r

	; キューブ表示

	d3texture  x, y, z,  2,  0, 0,  TEX_SIZE, TEX_SIZE
	d3texture  x, y, s,  2,  0, 0,  TEX_SIZE, TEX_SIZE

	d3texture  z, x, y,  2,  0, 0,  TEX_SIZE, TEX_SIZE
	d3texture  s, x, y,  2,  0, 0,  TEX_SIZE, TEX_SIZE

	d3texture  y, z, x,  2,  0, 0,  TEX_SIZE, TEX_SIZE
	d3texture  y, s, x,  2,  0, 0,  TEX_SIZE, TEX_SIZE


	redraw

	await


	goto *mainloop