;============================================================ ; 2005/--/-- ; d3module sample script ; for HSP 3.0 ; ;============================================================ ; ; d3square 命令を用いて面を描画します。 ; ; d3module では、単純に描画命令の実行順に画面への描画が ; 行われるので、プログラム的に工夫をしなければ、座標としては ; 奥にある面が手前にある面よりも前に描画されることがあります。 ; ; それっぽくごまかすためには、描画時は gmode を 5 か 6 に ; 設定し、加算/減算合成でピクセルを描画します。 ; ;============================================================ #include "d3m.hsp" title "S.Programs d3module sample" gmode 5, , , 128 ; 面を描画するときのコピーモードを設定 time_start = d3timer() *mainloop ; ループタイマー time = d3timer() - time_start ; フレームレートを表示 title "fps = " + d3getfps() redraw 0 color : boxf ; カメラ座標を回転させる d3setcam cos(0.002 * time) * 2000, sin(0.002 * time) * 2000, cos(0.001 * time) * 1000 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 ; └┬──┘ ; └ 描画する四角形の各頂点を格納した配列変数 ;------------------------------------------------------------ redraw await goto *mainloop