test9.hsp

sample\obaq\test9.hsp » Plain Format

#include "obaq.as"

	;
	;	カーソルキーで操作するオブジェクトが力を放射
	;	スペースキーを押すと力を放射します
	;	[ESC]で終了します
	;
	randomize		; 乱数の初期化
	screen 0,640,480	; ウィンドウ初期化
	celload "obaqlogo.bmp"	; OBAQロゴ読み込み
	logoid=stat		; ロゴのID

	celload "btex.bmp"	; 素材画像を読み込む
	tex=stat
	celdiv tex,64,64,32,32	; パーツのサイズと中心位置の設定

	qreset			; OBAQの初期化
	kazu=25			; 出現数

	;	操作できるオブジェクトの追加
	;
	qaddpoly my, 4, 96,24,0;, 6,12
	qgroup my,1,0,2		; コリジョンのグループ設定
	qmat my,mat_spr,tex


	frame=0
*main
	;	メインループ
	;
	redraw 0		; 画面の更新を開始
	gradf ,,,,1,0,128	; 画面クリア
	qexec			; OBAQによるオブジェクトの更新

	stick key,15+16		; キーの取得
	if key&128 : end	; [ESC]キーで終了
	if key&16 {
		qgetpos my,x,y,ang
		qblast x,y,1
	}

	;	カーソルキーで操作
	px=0.0:py=0.0:pr=0.0
	if key&1 : px-=0.04
	if key&4 : px+=0.04
	if key&2 : py-=0.05
	qspeed my, px,py,pr

	;	一定時間ごとに出現
	;
	if kazu>0 {
		qaddpoly i, rnd(3)+3, 96,24,0.01*rnd(628); 多角形を追加
		if i>=0 {
			qspeed i,0.1*rnd(10)-0.5,0,0.01	; ランダムな方向に飛ばす
			kazu--
		}
	}

	qdraw			; オブジェクトの描画

	color 255,255,255
	pos 0,0:mes "Frame:"+frame	; フレーム数を表示

	gmode 2:pos 470,40	; ロゴ表示
	celput logoid

	redraw 1		; 画面の更新を終了
	await 12		; 一定時間待つ
	frame++
	goto *main