#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