sample_02_basic.hsp

sample\d3module\sample_02_basic.hsp » Plain Format

;============================================================
;                                                 2005/--/--
;	d3module  sample script
;	for HSP 3.0
;
;============================================================
;
; 基本的な機能のサンプルです。
;
; repeat - loop 内でカメラを動かしながら同じ d3module 描画命令
; を繰り返し実行することによって、視点を自由自在に移動できます。
;
; このサンプルでは、画面上でマウスを動かすと平面座標上の視点が
; 変わります。
; また、マウスボタンの 右/左 クリック、もしくはホイールの
; 回転によって視点の z 座標が上下に移動します。
;
;============================================================

#include "d3m.hsp"

	title "S.Programs d3module sample"


	camz = 400

	repeat
		redraw 0


		; カメラ座標準備

		; マウスボタン
		getkey a, 1 : camz += a * 100
		getkey a, 2 : camz -= a * 100
		; ホイール
		camz += mousew * 2

		camx = (mousex - ginfo_winx / 2) * 20
		camy = (mousey - ginfo_winy / 2) * 20


		; カメラ位置設定

		d3setcam  camx, camy, camz,  0, 0, 0



		color 255, 255, 255 : boxf


		; 座標軸描画
		color

		;------------------------------------------------------------
		; メッセージを表示

		d3mes "X",  1100, 0, 0
		d3mes "Y",  0, 1100, 0
		d3mes "Z",  0, 0, 1100

		;      │  └┬───┘
		;      │    └ 表示する位置 (x, y, z)
		;      └ 表示する文字列
		;------------------------------------------------------------

		;------------------------------------------------------------
		; 矢印を描画

		d3arrow  1000, 0, 0,   -1000, 0, 0
		d3arrow  0, 1000, 0,   0, -1000, 0
		d3arrow  0, 0, 1000,   0, 0, -1000

		;       └┬───┘   └┬───┘
		;         │             └ 矢印の始点の位置 (x, y, z)
		;         └ 矢印の終点 (矢じり部分) の位置 (x, y, z)
		;------------------------------------------------------------


		; 具を描画
		color 128, 128, 128

		;------------------------------------------------------------
		; 直線 (線分) を描画

		d3line  0, 0, 0,  -500, -500, -500

		;       └┬─┘ └┬──────┘
		;         │       └ 線の端 2 の位置 (x, y, z)
		;         └ 線の端 1 の位置 (x, y, z)
		;------------------------------------------------------------

		;------------------------------------------------------------
		; 円 (球?) を描画

		d3circle  -500, -500, -500,   300

		;        └┬───────┘ │
		;          │                 └ 円の半径
		;          └ 円の中心位置 (x, y, z)
		;------------------------------------------------------------


		d3mes "-500, -500, -500", -500, -500, -500


		; ボックス 1 を描画
		color 255
		d3box 100, 100, 100,  500, 500, 500


		; ボックス 2 を描画
		color , , 255
		d3box 500, 500, 500,  1000, 1000, 1000


		redraw
		await 30

	loop