sample_05_particle_basic.hsp

sample\d3module\sample_05_particle_basic.hsp » Plain Format

;============================================================
;                                                 2005/--/--
;	d3module  sample script
;	for HSP 3.0
;
;============================================================
;
; パーティクル描画のサンプルです。
;
; d3mkparticle 命令で使用するパーティクルを作成してから、
; d3particle 命令でパーティクルを描画します。
;
; パーティクルを描画する前に、gmode 命令を使用して画面コピー
; モードを加算合成にします。
; (他のモードでも使用できます。)
;
; * パーティクル描画機能はフルカラーモード専用です。
;
;============================================================

#include "d3m.hsp"

	title "S.Programs d3module sample"


	;------------------------------------------------------------
	; パーティクルを初期化 (作成)

	d3mkparticle 0,  255, 255, 32

	;            │  └┬───┘
	;            │    └ パーティクルの色 (r, g, b) を指定
	;            └ パーティクル ID
	;------------------------------------------------------------


*mainloop
	ct++

	redraw 0

	color 24, 24, 24
	boxf


	; カメラ座標を回転させる
	d3setcam cos(0.04 * ct) * 2000, sin(0.04 * ct) * 2000, cos(0.03 * ct) * 1000


	; 枠のボックス
	color 64, 64, 64
	d3box -500, -500, -500,  500, 500, 500


	; パーティクル描画時のコピーモードを設定
	gmode 5, , , 128


	; パーティクルを描画
	randomize 0
	repeat 300

		; 座標準備
		x = rnd(1000) - 500
		y = rnd(1000) - 500
		z = rnd(1000) - 500
		r = 50

		;------------------------------------------------------------
		; パーティクルを描画

		d3particle 0,  x, y, z,  r

		;          │ └┬──┘ └ 描画するパーティクルの半径
		;          │   └ 描画する位置 (x, y, z)
		;          └ パーティクル ID
		;------------------------------------------------------------

	loop


	redraw 1
	await 30

	goto *mainloop