test6.hsp

sample\obaq\test6.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の初期化

	;	自由な形状のモデルを追加
	;
	model=-1.0,-1.0, -1.0,2.0, 2.0,1.0, 1.0,-1.0
	qaddmodel i,model,-1, 30,64,0
	qspeed i,0.1*rnd(10)-0.5,0,0.01
	qgroup i,2		; コリジョンのグループ設定

	;	操作できるオブジェクトの追加
	;
	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		; キーの取得
	if key&128 : end	; [ESC]キーで終了

	;	カーソルキーで操作
	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

	qcollision my
	qgetcol i,colx,coly
	if i>=0 {
		color 255,255,0
		qcnvaxis ix,iy,colx,coly
		pos ix,iy:mes "HIT!"
	}

	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