emit_sample2.hsp

sample\hgimg3\emit_sample2.hsp » Plain Format

#include "hgimg3.as"

	;	2Dスプライトのサンプル
	;	(カーソルキーで移動、スペースで発射)
	;

	;	ウインドゥサイズの設定
	;
	screen 0,640,480,0
	cls 4

	;	初期設定
	;
	hgsetreq SYSREQ_MAXOBJ,2048	; オブジェクト最大数を増やす
	hgini

	;	スプライトモデルを登録
	;
	setuv 64,64,127,127
	addspr pchr,1		; プレイヤーキャラ
	regobj mychr,pchr, OBJ_LATE
	setuv 0,64,63,127	; リンゴ
	addspr mchr,1
	texload "testchr.bmp"	; テクスチャの登録

	;	イベントリストを登録
	;
	newevent ev1			; 新しいイベントIDを取得
	event_efx ev1, 80, 0		; 80フレーム後に透明度0%
	event_wait ev1, 80		; 80フレーム待つ
	event_delobj ev1

	;	エミッターを登録
	;
	newemit em1, EMITMODE_CIRCLE, 20
	;newemit em1, EMITMODE_RANDOM
	emit_angmul em1, 0,0,1
	emit_speed em1, 4,0
	emit_model em1, pchr, 0, OBJ_MOVE|OBJ_BORDER ; model,modelnum,objmode,efx 
	emit_event em1, ev1

	;	準備
	;
	clscolor 128			 ; 背景色の設定
	setborder 740.0f, 580.0f, 200.0f ; クリップ範囲

	rotbase = 0.0
	frame=0

*main
	;	描画メイン
	;
	hgdraw				; 描画処理
	hgsync 10			; 時間待ち

	stick k,127
	if k&128 : goto *owari		; [ESC]で終了

	;	カーソルキーで移動
	;
	if k&1 : addpos mychr, -2, 0
	if k&4 : addpos mychr, 2, 0
	if k&2 : addpos mychr, 0, -2
	if k&8 : addpos mychr, 0, 2

	if k&16 {			; リンゴ発射
		if (frame&7)=0 {
			emit_angopt em1, 0,0,rotbase
			getpos mychr,x,y,z
			hgemit em1, x,y,z
			rotbase += 0.04
		}
	}

	frame++
	goto *main

*owari
	end