test12.hsp

sample\hgimg3\test12.hsp » Plain Format

#include "hgimg3.as"

	;	パーティクルサンプル2
	;	(パーティクル生成をイベントで行なう)
	randomize
	screen 0,640,480,0
	cls 4
	hgini

	;	テクスチャフォント表示の準備
	;
	setfont 16,16,12,1	; font Tex select(cx,cy,px,mode)
	texload "fontchr.bmp"	; フォントテクスチャの登録

	;	Xモデル登録
	;
	addxfile m_xmodel,"font_a.x"	; モデルを読み込む
	regobj xobj, m_xmodel		; オブジェクトの登録
	setefx xobj, $80

	;	モデル登録
	;
	setuv 0,0,64,64
	addplate m_plate,1,3,3
	texload "efx.bmp"

	;	イベントリストを登録
	;	(単一のパーティクル)
	newevent ev1			; 新しいイベントIDを取得
	event_setefx ev1, $2ff,0,0	; 色加算モードに設定
	event_setdir ev1, -0.5,-1.0,-0.5, 0.5,-1.2,0.5
	event_prmon ev1,PRMSET_MODE,OBJ_MOVE|OBJ_XFRONT
	event_adddir ev1, 0, 0.1, 0
	event_wait ev1,10
	event_efx ev1, 16, $200, 0, 0
	event_adddir ev1, 0, 0.1, 0
	event_wait ev1,16
	event_delobj ev1

	;	イベントリストを登録
	;	(パーティクル発生元)
	newevent ev2			; 新しいイベントIDを取得
	event_setwork ev2, 0, -5, 0
	event_regobj ev2, m_plate, ev1
	event_regobj ev2, m_plate, ev1
	event_wait ev2,1
	event_jump ev2,0

	;	表示の準備
	;
	clscolor $80			; 背景色の設定
	setpos HGOBJ_CAMERA, 0,-5,30	; カメラ位置の設定
	frame=0
	scfade=0
	scfadev=256
	gosub *fadein

	;	メインオブジェクトにイベントを設定
	;
	setevent xobj, ev2

*main
	gosub *alldraw
	stick key,$3ff
	if key&128 : goto *main2

	;	カーソルキーで動かす
	;
	if key&1 : addpos xobj, -0.2, 0.0
	if key&4 : addpos xobj, 0.2, 0.0
	if key&8 : addpos xobj, 0.0, 0.2
	if key&2 : addpos xobj, 0.0, -0.2

	goto *main

*main2
	gosub *fadeout
	repeat
	gosub *alldraw
	if scfadev=256 : break
	loop

*owari
	end


*alldraw
	;	フレーム描画のサブルーチン
	;
	hgdraw				; 描画
	fprt "Frame:"+frame,8,8
	if scfade {			; フェード処理
		scfadev += scfade
		if scfadev>255 : scfadev=256
		if scfadev<1 : scfadev=0 : scfade=0 
		color 0,0,0:gmode 3,640,480,scfadev
		hgrect 320,240,0
	}
	hgsync 15			; 時間待ち
	frame++

	;	モデルを回転させる
	addang xobj,0,0.05,0

	return

*fadein
	scfade=-4
	return
*fadeout
	scfade=4
	return