ありさんに
というのを教えてもらったのですが、hsp3dish.asにobaq.asの機能が含まれているはずなので、
#include "obaq.as" pos 500, 30 button gosub "Go", *start : btnid = stat ; Goボタンの設置 *setting qreset ; OBAQ初期化 qaddpoly ball, 20, 80.0, 20.0, 0.0, 5.0, 5.0, 1, 1 ; ボール(20角形)作成 qtype ball, type_bind, 0 ; ボール位置を一時固定 qaddpoly goal, 4, 80.0, 100.0, 0.0, 20.0, 5.0, 1, 2 ; ゴール(4角形)設置 qtype goal, type_bind, 0 ; 位置を固定 qgroup ball, 1, 0, 2 ; ボールにqcollisionでコリジョン(当たり判定)を受け取るグループを設定 qaddpoly block1, 4, 120.0, 30.0, 0.0, 10.0, 10.0, 1, 4 ; 移動ブロック(4角形)の設置 qinertia block1, , 0.0 ; ブロックを落下しないように設定 qaddpoly block2, 3, 70.0, 60.0, 45.0, 10.0, 10.0, 1, 4 ; 邪魔ブロック(3角形)の設置 qtype block2, type_bind, 0 ; *main redraw 0 color 0, 0, 0 : boxf ; 画面のクリア qexec ; OBAQの動的処理は基本的にqexecからqdrawの間に記述する qspeed block1, 0.0, 0.0, 0.0, 2 ; 方向キーを離すと止まる stick key, 15 if key & 1 : qspeed block1, -0.1, 0.0, 0.0, 2 ; 方向キーでブロックを上下に移動 if key & 2 : qspeed block1, 0.0, -0.1, 0.0, 2 if key & 4 : qspeed block1, 0.1, 0.0, 0.0, 2 if key & 8 : qspeed block1, 0.0, 0.1, 0.0, 2 qcollision ball ; ボールに設定したコリジョングループの判定取得開始 qgetcol hitchk, hitx, hixy ; コリジョングループ内の判定を取得(hitchkに接触したオブジェクトIDが入る) if hitchk = goal : dialog "GOAL" :end ; ゴールにボールが触ったら終了 qdraw redraw 1 await 16 goto *main *start qtype ball, type_bind, 2 ; Goボタンを押すとボールを落とす return
#include "hsp3dish.as"
としても動くはずなので、試しに書き換えてみました。
すると、動きませんでした。どこがまずかったのでしょうか?
よろしくご教授願います。