現在避けゲー(のようなもの)を作りたいと思っています。
通常の避けゲーだと敵がランダムに配置されることが多いと思うのですが、私は事前に敵の配置を設定したいと思っています。
サンプルから上手く改造できないかなと色々な避けゲーやシューティングゲームのスクリプトを見たのですが、どれも敵の配置がランダムになっており、一から自分で作ってみることにしました。
以下のスクリプトだと上から降ってくる敵一つ一つに初期座標を与えて下に落ちるようにしています。
screen 0,300,700 ///降ってくる赤い四角 cube_px = 0 // 箱1 左上座標X cube_py = 0 // 箱1 左上座標Y cube_px2 = 50 // 箱2 左上座標X cube_py2 = 0 // 箱2 左上座標Y cube_px3 = 100 // 箱3 左上座標X cube_py3 = 0 // 箱3 左上座標Y cube_length = 10 // 縦の長さ cube_width = 50 // 横の長さ cube_my = 1 // 移動量 cube_speed = 5 // 移動速度 ///下部で動く青い四角 x = 0 // 初期座標X y = 650 // 初期座標Y p = 50 // 移動量 *one redraw 0 // 描画開始 color 0,0,0 //赤い四角描画 boxf color 255,0,0 line 50,0,50,700 line 100,0,100,700 line 150,0,150,700 line 200,0,200,700 line 250,0,250,700 line 0,650,300,650 boxf cube_px, cube_py, cube_px + cube_width, cube_py + cube_length color 0,0,255 //青い四角描画 boxf x,y,x+50,y+50 stick key if key&4 : x = x + p if key&1 : x = x - p if x < 0 : x = 0 if x > 250 : x = 250 redraw 1 //描画終了 gosub *cube_move // 箱の移動処理 await 15 // 応答なし防止 gosub *one // 箱の移動処理 *cube_move cube_py += cube_my * cube_speed // 箱の表示位置を更新する処理 if cube_py >=660 : goto *two // 次の箱を出す return //////////////////////////////////////////////////////////////////////////////// *two redraw 0 color 0,0,0 boxf color 255,0,0 line 50,0,50,700 line 100,0,100,700 line 150,0,150,700 line 200,0,200,700 line 250,0,250,700 line 0,650,300,650 boxf cube_px2, cube_py2, cube_px2 + cube_width, cube_py2 + cube_length color 0,0,255 boxf x,y,x+50,y+50 stick key if key&4 : x = x + p if key&1 : x = x - p if x < 0 : x = 0 if x > 250 : x = 250 redraw 1 gosub *cube_move2 // 箱の移動処理 await 15 // 応答なし防止 goto *two // 箱の移動処理 *cube_move2 cube_py2 += cube_my * cube_speed // 箱の表示位置を更新する処理 if cube_py2 >=660 : goto *three //次の箱を出す return //////////////////////////////////////////////////////////////////////////// *three redraw 0 color 0,0,0 boxf color 255,0,0 line 50,0,50,700 line 100,0,100,700 line 150,0,150,700 line 200,0,200,700 line 250,0,250,700 line 0,650,300,650 boxf cube_px3, cube_py3, cube_px3 + cube_width, cube_py3 + cube_length; color 0,0,255 boxf x,y,x+50,y+50 stick key if key&4 : x = x + p if key&1 : x = x - p if x < 0 : x = 0 if x > 250 : x = 250 redraw 1 gosub *cube_move3 // 箱の移動処理 await 15 // 応答なし防止 goto *three // 箱の移動処理 *cube_move3 cube_py3 += cube_my * cube_speed // 箱の表示位置を更新する処理 if cube_py3 >=660 : end //終了(実際はさらに続く) return
上のスクリプトでは、左から1列目、2列目、3列目に順番に赤い四角が落ちるようになっています。
3個目の四角が落ちたら終了するようになっていますが、実際は2分ぐらい続くステージを想定しています。
下の青い四角は可動です。
お尋ねしたいことは2つです。
①上から降る赤い四角の配置を事前に設定する方法
(可能であればステージ制にしたいので音ゲー譜面のように各配置を保存したい)
②赤い四角落下の密度を上げる方法
(今の状況だと前の四角が消えるまで次の四角が現れないので、並行作業的にどんどん四角が降るようにしたい)
GW中にかなり調べてみましたが何も分からなかったので掲示板にて質問させて頂きました。
宜しくお願いします。
※「避けゲーやシューティングゲームのスクリプトを上手く弄ればできる」という事であれば、私が書いた上のスクリプトは無視してもらって構いません。