BRELG/II

雑誌掲載

晋遊舎「Windows100%」2006年2月号にて、紹介&収録されました。 ここのURLが記載されているので、それ見て来た方々のためにメモ。 BRELG/IIは、HSPコンテスト2005の応募作品です。ショート部門エントリNo.265。 ショート部門の応募条件として、コ…

床変化

量産型Brelgが新規に出現するときは、乱数を使って出現位置を決定します。 床パネルの操作は、求めた出現位置を流用して行っています。 if cntdmc\=10:dmc+7 cntは量産型Brelgのオブジェクト番号で、0〜14の番号がついた量産機を新規出現 させるときだけ有効…

キャラクターの描画

BRELG達の元絵は以下のような感じで描いています。 dup c1,c0(1) boxf repeat 160:mpf^=255:c0=64+mpf,64 color mpf|cnt,cnt,mpf^255|cnt:ee=56-cnt/4:gosub *circ ; ボディ color 200,250:circle mpf+48,0,mpf+79,41 ; モノアイ loop stop *circ circle c0-…

更新

敵機出現場所とパネル操作の乱数を兼用させて、敵が満数でないのに出現できる 条件でなかったとき、自機から一定範囲のパネルを操作している。 今回の調整で、ゲーム開始時にすぐには橋が掛からない可能性がでている。 あまり早く埋まってしまうと地形的につ…

改善案

敵機が孤島から出られないことが多いので、序盤のパネル発生範囲を大きめに調整。 何機かに1機、レーザーを打った後に回避行動をとるように細工。 爆炎上の点数表示をもう少し左に寄せる。(4バイト追加) これで15命令くらいにはなると思う。

更新の準備

上記2点などの調整によりトータル60バイト減ったので、作品仕様の改善を検討する予定。

距離計算を整数で演算

エントリーしたスクリプトは、距離の計算でOverFlowしないように実数計算を行なって いたが、計算順序を見直したら、整数で計算してもOverFlowする危険がなくなっていた。 整数計算は大きな数字で比較するので一箇所2バイトの損にはなるが、SQRT()の8バイトを…

マップ初期化のロジック変更

初期マップは縦横1マスおきにパネルが並ぶようにしている。 mp(104,104)のうち 20,20〜80,80 の範囲が対象。 この外のエリアに自機が来てしまうとフロア表示の際に配列要素範囲外エラーになるので、 パネルを置かないようにしている。 最初は 2重のRepeat〜L…

エントリー

行って来ました。No.265でした。

更に改善

昨日の改善点、自機レーザー範囲を黒(パラメータなしcolor)にできないか考えてみたら、 得点加算後の爆炎描画でR値を1足していたのを、得点加算前の連鎖回数をev=c0+(c0 「15連鎖未満なら1足す」で計算しておけばいいだけのことに気が付いた(c0はginfo_rの …

開発メモ→ブログ

別所でつけていた開発メモをブログに張ってみることにしました。 ということで、はてなにユーザー登録。 今日より過去の分は、遡って書いています。 コンテストのユーザー評価だと、不具合内容を書き込んでもらえないかもしれないので、 ここをエントリー時…

コード改善

節約と思って、爆炎の色設定をダメージ計算用/実表示用で共用していたが、撤廃。 ダメージ計算用の爆炎は見せないので、color p1,p2,p3 を color p1で済ましてもいい。 color $e0-limit(ev,0,15),253,253($e0は白にするためのR要素の下駄)としていたのを、 1…

大きなBug

調整中にBug発見。 得点アップ天井は15連鎖としたが、15連鎖以上するとおかしな得点計算が行なわれる。 敵弾が爆炎で消滅するロジックを整理したときに、制限も一緒にはずれてしまったらしい。 修正検討中に別のBugを2つ発見。 自機破壊時にパネルなしで引っ…

大改修

まず、敵が一定時間自機を向いていたらレーザー発射するロジックを入れる。 敵弾消滅のチェックが不要になり、ロジックが整理しやすくなった。 オブジェクトが自機、敵機、敵弾の3種→自機、敵機の2種になった効果は大きい。 残っていた全ての表示を入れて…

企画変更

変更の概要固まる。 ホーミング弾と自機のシールドを廃止し、レーザーの打ち合いとする。 敵にも耐久値を持たせ、自機の耐久値もカウントではなくメーター制にして回復もつける。 誘爆もレーザーも、同様に耐久値を減らす。 そんなんでどうだろう。 回復のや…

規定サイズオーバー

自機にシールドを装備させる。 4Kbytesをオーバーしたが、点数表示、タイトル表示、GameOver処理がまだできていない。 企画変更の必要あり。明日は移動時間が長いので、じっくり考えることにする。 1つのRepeat〜Loopでグラデーション付●を2個一緒に描画する…

バイト数削減…

バイト数を稼ぐために、敵出現のエフェクトが不要になるよう画面外での出現に変更。 画面はフィールドの一部しか見えないので、敵移動と敵弾の速度の調整が難しい。後回し。 うーん。今一ゲーム性に欠ける。 この時点で3Kbyte。厳しいか。

一気に機能追加。

ホーミングと敵機と自機の正式画像の描画ルーチンを作成。 敵出現はとりあえず全機ランダム。 ホーミング射出タイミングもランダムで。 Brelg同様に、敵機、自機、敵弾等のオブジェクトを全て同一配列で管理。 誘爆については、Brelgではオブジェクト順に描…

表示基本部分作成

回転表示系を作ってみた。 自機中心一定範囲のフィールドデータを対象として、表示場所を計算。 裏バッファに置いた絵を、grotateで切り出して描画。 grotateは大きい画像で落ちるので、小さいパネルを敷き詰める方法が うまくいっているようだ。 とりあえず…

新作企画

とりあえず企画をまとめる。 Brelgの続編、タイトルはBrelg/II 連鎖 回転画面 レーザー対ホーミング弾 タイトルとGameOverは必ずつける 前のコードでは使い物にならないので、最初から起こすことにした。

『Brelg/II』の簡易サポートスレッドです。 ご意見、ご感想、不具合は下の「コメントを書く」をご利用ください。 =============== <データ> HSPコンテスト2005ショート部門、エントリーNo.265 画面回転なタンクシューティングです。 Window…