;============================================================ ; 2005/--/-- ; d3module sample script ; for HSP 3.0 ; ;============================================================ ; ; 球体描画サンプルの変化バージョンです。 ; トゲトゲがうねうね動きます。 ; ; このサンプルでは画像ファイル (toge.gif) からパーティクルを ; 作成しています。 ; ;============================================================ #include "d3m.hsp" title "S.Programs d3module sample" ; 使用するパーティクルをロード picload "toge.gif", 1 ;------------------------------------------------------------ ; パーティクルを初期化 (バッファ画像から読み込み) d3ldparticle 0, 0, 0, 0, 128, 128 ; │ │ └┬┘ └┬─┘ ; │ │ │ └ 読み込むサイズ (w, h) ; │ │ └ 読み込み元の左上位置 (x, y) ; │ └ 読み込み元ウィンドウ ID ; └ パーティクル ID ;------------------------------------------------------------ gmode 5, , , 128 ; パーティクルを描画するときのコピーモードを設定 time_start = d3timer() *mainloop ; ループタイマー time = d3timer() - time_start ; フレームレートを表示 title "fps = " + d3getfps() redraw 0 color 24, 24, 24 : boxf ; カメラ座標を回転させる d3setcam cos(0.001 * time) * 2000, sin(0.001 * time) * 2000, cos(0.001 * time) * 1000 ; 球体描画 color 128, 255, 128 POLYS = 28 ; 球体分割数 dh = 6.2831853 / POLYS ; oOOo repeat POLYS / 2 - 1, 1 ph = dh * cnt d3initlineto repeat POLYS th = dh * cnt x = 0 y = 0 z = 500 + sin(th * 8) * 70 + sin(ph + 0.004 * time) * 200 ; 座標を回転置換 d3rotate y, z, y, z, ph d3rotate x, y, x, y, th d3particle 0, x, y, z, 50 d3lineto 1.2 * x, 1.2 * y, 1.2 * z ; ↑d3lineto を使用して、パーティクル描画位置からの線を描画 loop loop redraw await goto *mainloop