sample\d3module\sample_03_basic.hsp » Plain Format
;============================================================
; 2005/--/--
; d3module sample script
; for HSP 3.0
;
;============================================================
;
; 基本的な機能のサンプルです。
;
; カメラ座標とカメラターゲットの座標が動きます。
;
;============================================================
#include "d3m.hsp"
title "S.Programs d3module sample"
#define MAX 16
ddim x, MAX
ddim y, MAX
ddim z, MAX
repeat
redraw 0
color 255, 255, 255 : boxf
; ボックスの座標を生成
ct = cnt
randomize 0
repeat MAX
x(cnt) = cos( 0.002 * (rnd(10) + 10) * ct ) * 600
y(cnt) = sin( 0.002 * (rnd(10) + 10) * ct ) * 600
z(cnt) = sin( 0.002 * (rnd(10) + 10) * ct ) * 60
loop
; カメラ座標設定 (自動切換え)
if (cnt / 150) & 1 {
; 移動カメラ
d3setcam x, y, z, x(1), y(1), z(1)
} else {
; ふかんカメラ
d3setcam cos(0.01 * ct) * 1500, sin(0.01 * ct) * 1500, 1000
}
; 座標平面描画
color 64, 192, 64
repeat 31
a = cnt * 2000 / 30 - 1000
d3line a, 1000, 0, a, -1000, 0
d3line 1000, a, 0, -1000, a, 0
loop
; 座標軸描画
color 32, 128, 32
d3mes "X", 2200, 0, 0
d3mes "Y", 0, 2200, 0
d3mes "Z", 0, 0, 1100
d3arrow 2000, 0, 0, -2000, 0, 0 ; x
d3arrow 0, 2000, 0, 0, -2000, 0 ; y
d3arrow 0, 0, 1000, 0, 0, -1000 ; z
; ボックスを描画
color , , 255
r = 30
repeat MAX
d3box x(cnt) - r, y(cnt) - r, z(cnt) - r, x(cnt) + r, y(cnt) + r, z(cnt) + r
loop
; 箱 0 (カメラ位置) を円で囲む
color , , 128
d3circle x(0), y(0), z(0), 100
; 箱 1 (ターゲット座標) を円で囲む
color 128
d3circle x(1), y(1), z(1), 100
redraw
await 30
loop