;============================================================ ; 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