Boreas V2.26 【概要】 縦シューティングゲーム「ボレアース」。 価値未知数の星間エネルギー《Xエレメント》をめぐる攻防の一幕。 自機を操り、エンドレスで飛来する敵をひたすら撃破してください。 ボス戦を生き延びれば(ボス破壊は不問)ステージレベルがアップし、難度も増していきます。 自機ストックは5機。敵弾や敵本体に接触すると1ミスです。 ※Ver2.25→V2.26主な変更  Windows2000での実行時にゴミが表示される障害(V2.25の投稿ミス)を、正しく修正。  自機パワーアップ時、ショット発射キーの状態により効果を選択。  Xエレメント(大)の必要性が増したので出現率Up  自機移動時にショット初回表示が機首位置からずれる不具合を是正。  難易度を調整:敵弾速度をヤバ目に、敵本体速度を1割増。  バイト数稼ぎ:自機破壊演出を微妙に変更、ボスコアと砲撃艦の耐久力を同値に。 【タイトル表示中の操作】 ゲーム開始:Ctrl,Space,Enter,Tab,マウス左/右クリック どれでも 開始レベル調整:ゲーム開始時に方向キー同時押しで指定。右上=Lv1〜左上=Lv7。 【プレイヤー側装備およびゲーム中の操作】 自機:  型式「ボレアースMK-II/Rev26B」。プレイヤーが操作します。  └自機移動 方向キー(8方向) 通常ショット:  障害物に着弾すると一定範囲に衝撃ダメージを与えます。  └通常ショット発射 Ctrl,Space,マウス右クリック どれでも(連射機能を装備) パワーショット:  通常ショットの2倍〜16倍の威力を持つ高圧縮弾。  └パワーショット発射 ショットパワーゲージが上がってからショット発射 エリミネータ:  起動すると自機周囲に還元フィールドを展開。敵弾やデブリも消失します。  └エリミネータ起動 Enter,Tab,マウス左クリック どれでも ※KeyBoardによっては、方向キー2個と他のキーの同時押しが反応しないことがあります。 【敵方キャラクター】 浮遊機雷: 左右に移動する赤色の機雷。掃討対策の攻撃機能を有します。20点。 誘導機雷: 4個のセンサーでターゲットを補足、追尾しつつ攻撃。25点。 突撃艇: 基本動作は浮遊機雷と同じだが、高速で飛来。35点。 デブリ: 空間に漂う構造物の破片が飛来。ショット無効、エリミネータで消去可能。60点。 砲撃艦: 弾を撒き散らす戦艦、耐久力あり。ステージレベルに応じて耐久力上昇。150点。 移動要塞: 強力な砲撃と耐久力を持つボス。弱点のコアはシールドにより防護。500点。 敵弾: 高密度のエネルギー体。エリミネータで消去可能。10点 【ボーナスキャラクター】 Xエレメント(小):星間エネルギー凝縮体。敵破壊か上方より出現。取得50点。 Xエレメント(大):上方より飛来。取得50点、自機パワーアップ  (1)ショット発射キーを押していない状態で取得すると、自機速度Up  (2)ショット発射キーを押している状態で取得すると、ショット性能Up ※Xエレメントを取得すると、エリミネータのゲージがチャージされます。 ※エリミネータ稼動中はボーナスキャラクターの取得はできません。 【インジケータ類】 インジケータやスコアなどは画面下部にあります。 上段:左から、自機ストック(★)、ステージレベル(L:)、得点(S:) 下段:エリミネータ充填ゲージ(紫)、ショットパワーゲージ(水色) 【ゲームのポイント】 パワーショット…  通常ショットを撃たずにいるとショットパワーゲージが上がっていき、その状態でショットを  撃つと、チャージ量に応じた威力のパワーショットが発射されます。  パワーショットの威力は通常ショット2発〜16発分です。(自機初期状態では最高8発分)  |★の縦線位置はショットパワーゲージのMAXになります。  自機性能がパワーアップすると、ショットパワーゲージの示す一定量あたりの威力が増します。  (ゲージの大きさやチャージ速度は変わりません)  威力が十分ならデブリも貫通します。 エリミネータは追加起動可能…  エリミネータ稼動中に追加起動できます。持続時間が延長され、一時的に還元フィールドの  有効範囲が拡大されます。  エリミネータのゲージはXエレメントを取得することで充填されていきます。  エリミネータ1発を起動するにはXエレメント16個分のチャージが必要です。  ゲージMAXで5発分です。|★の縦線位置は1発目が起動できる最低チャージラインです。  自機をミスしても充填ゲージは継承されます。  自機のエリミネータ発動機関の発色でもエリミネータの起動可能状態がわかるようになって  おり、起動不可はピンク、起動可能1発〜4発は黄、5発では白です。 Xエレメント…  取得するとエリミネータのゲージが一定量チャージされます。  Xエレメント(小)は敵を破壊した場合に出現する他、特定ゾーンで上方より飛来します。  Xエレメント(大)を取得すると画面がフラッシュして、自機のパワーアップ効果が得られます。  取得時のショット発射キーの状態によってパワーアップ効果を選択できます。  (1)ショット発射キーを押していない場合は自機速度Up(5段階)フラッシュは紫  (2)ショット発射キーを押している場合はショット性能Up(5段階)フラッシュは水色     ・ショット連射性能が向上し、通常ショットのは発射間隔が短くなります。     ・パワーショットの最大威力が上がります。通常ショット比:8→10→11→13→16倍。  ※パワーアップ効果は、自機をミスするとリセットされます。  ※敵破壊時に出現したXエレメント(小)は、活きのいいうちは自機に誘引されます。  ※敵破壊時にXエレメント(小)が出現しないこともたまにあります。  ※性能がMaxの場合はそれ以上パワーアップしませんが、画面フラッシュは行われます 砲撃艦は手ごわい…  砲撃艦はの攻撃は回転弾幕とランダム弾幕のどちらか(出現時に決定)です。  耐久力はレベル数+5です。レベル5からは複数同時に出現することがあります。  現バージョンでは、ボスの直前には必ず出現します。 ボスを破壊するには…  ボスを倒すには、弱点のコアを守るシールドを先に破壊しなければなりません。  ボスのシールド(大きい◆)に対しては、ショットかパワーショットの直撃のみ有効です。  直撃でないショットの衝撃やエリミネーターは無効な攻撃となります。  通常ショット19発分の直撃ダメージでシールドは消失します。  コア(中央の●)はステージレベルに応じた耐久力(レベル数+5)を持ちますが、コアに対し  ては、どの攻撃でも通用します。ボス破壊時は敵弾など耐久残1の敵キャラを道連れにします。  なお、ボスは倒さずにいると一定時間で逃げていきます。攻撃は、砲撃艦同様のばら撒きと、  一定間隔で自機に弾を集中させて撃つパターンを繰り返します。 バックアタックに注意…  ステージが進むと、デブリと誘導機雷のバックアタック(画面下より出現)が発生します。  発生するポイントは各ステージ毎に決まっていますので、出現パターンを観察すればそれなり  に予想できます。  デブリゾーンまでにエリミネータを充分チャージしておき、デブリの得点も稼ぎましょう。 ステージ進行について…  表示はありませんが、一つのステージには数箇所のチェックポイントがあり、ミスすると直前  のチェックポイントに戻って再スタートとなります。  状況により非常に厳しいポイントから始まることがあります。  ボス戦を生き延びるとステージレベルが上がります。ボスの破壊は不問で、ボスが逃げ切った  場合にもステージレベルが上がります。(ボス破壊得点は当然ありません)  ボスが逃げ切ってもレベル値が増加しないうちにミスすると、直前のチェックポイントに戻さ  れて再びボス戦です。 序盤が退屈という方には…  ゲームを開始する際に方向キーを押していると、ステージレベルを切り替えて始められます。  右上(LV:1)より左上(LV:7)まで時計回りで割り当てられています。  上位ステージレベルの凶悪ぶりを是非ご堪能ください。 【動作環境】 Windows2000professional,Pen3-866MHz,Mem512MB,HSP2.61 WindowsXPprofessional,M-Pen-1.5MHz,Mem768MB,HSP2.61 にて動作確認しております。(CPUはPen3-1GHz以上を推奨します。) 起動中はかなりCPUパワーを消費します。他のアプリケーションは動作させないでください。 【制限・免責事項】 本ソフトは、どのような環境でも動作することが保証されるものではありません。 本ソフトを使用したことあるいは使用しなかったことで生じた、いかなる損害にも著作者は責任 を負いません。 改変、配布、販売、リバースエンジニアリングは、いずれについても著作者の許可なく行なう ことを禁止します。 製作/著作 (C) 2003,2004 あんすこえむ 【蛇足事項】 ・前回のコンテストでBug付きだった拙作と同タイトル。懲りずに辛口です。大幅に改修して プログラムは別物のようにスリムになったので、付加要素がたくさんつけられました。 ・雑魚は自機からある程度(中心距離で100dot位)離れていないと弾を撃ちませんが油断せぬよう。 ・自機8方向移動は、方向キーの左右上と左右下の3個押しにも対応しています。それぞれ上下 キー単独で押されたのと同じ扱いです。標準的な凸並びの配置からすると、これらの同時押しは 大いに発生しうるので。キーの3個同時押しが機能するKeyBoardでないと試せませんが… ・V2.23まで: 自機を追尾する敵、自機狙いで発射される敵弾、美しき8方向移動などのコンセプトは継承し、 ボス、バックアタック、パワーアップ、連射機能、出撃演出などシューティングに通常見られる 要素をできるだけ詰めました。(破壊演出も少し改善。あとタイトルつきました。) 仕上がってみると、往年のシューティング風に落ち着いてしまったかもしれない… ・V2.25の裏 さらにコードを圧縮。しかし、とうとうHSPDEF.ASを消すことに… <Xエレメント> 価値未知数の星間エネルギーの凝縮体という仮定で持ち出しました。(物集め属性+) (イスカン○リウムのようなものと…、敵は搾取目的の異星人?) 大小ありますが、基本的に同一キャラクターなので点数は同じです。小さい方は自機に誘引され、 大きい方は我関せずの浮遊機雷と同じ動きにして変化をつけました。 敵弾と同程度のサイズですが、当たり判定は敵本体に合わせています。 <パワーショット> 某横シューの波○砲のよう(画像はともかく)な武装ですが、ショット発射キーをOn/Offする 口実がほしかったというのが採用理由です。開始からGameOverまで押しっぱなしで離すことの ないショット発射キーなら、はじめから自動でショット撃つようにすれば存在理由がないので。 で、いくつか考えた案のうち一番低コストで実現できたのがパワーショットでした。威力を設定 できる仕組みは元からあったのでショット色分けとゲージ新設程度のコストで追加。 <ボス破壊時の道連れ> ボス破壊時の達成感が乏しいのと、激しい弾幕で相打ちになることが多かったので、敵弾一掃の ために採用しました。試験的なものだったのですが、敵ダメージチェックを色判定でやっていた ことが幸いして6バイトで実装でき、視覚効果も悪くないのでそのまま残存。(派手属性+) ボス画像は自機の一部と共有してデータを節約していたのですが、他を変更した影響で、データ 共有よりもコード節約の方がよい結果になったのでデータを分離。ついでに外層色を赤に。 *ここまで読んでくれた方のための、スリム化みみっTips* ●変数の0クリアは、wpoke x で。元の値は0〜65535限定ですが、x=0より2バイト減。 ●dup a1,a0.1 の勧め。これ自体は10バイト食いますが、配列の一括代入で減量効果大。  例1:括弧の削減 a1=b*c+(d*e) → a0=d*e,b*c+a0 で2バイト減。  例2:サブルーチンへ渡すパラメータなどの一括代入     a0=x+3:a1=y*10 → a0=z+3,y*10 で4バイト減。  例3:「Cの?演算子」的使い方でif削減。(a0.2も参加) if x+1=y { a1=100 }else{ a1=200 } pos a1,300 → a0= x+1=y ,200,100 :pos a1.a0,300 この例では8バイト減。 ・V2.26の裏 自機速度の可変化は多方面に影響があり、解決に結構なバイト数を要するため見合わせていまし たが、バイト数節約のブレークスルーがあったので実装できました。(#deffuncで命令を1個だけ 定義し数通りの機能を持たせて、呼出し時の第1引数の値によって機能を振分けています。) パワーアップの種類が増える場合、通常ならアイテムの種類を増やして対応するところですが、 それではてきめんに太ってしまうので、ショット発射キーの状態で制御するようにしました。 速度Up率は「あ、いまのでちょっと早くなったぞ」と感じる程度(約1割Up)に抑えました。 Maxは初期状態の約1.5倍です。 *みみっTipsその2* ●論理圧縮からロジック圧縮の例  repeat 10内で、cntが0でflgが1の時だけあるxに1足す処理をしたいとします。  読みやすさ優先で書くなら if(cnt=0)&(flg=1):x++ です。  これは詰めて if =cnt*flg=1 :x+ (20バイト)と書けます。  更に cntが0以上、flgが0か1の値しか取らないことがわかっているのであれば、  if cnt>31|1*x で7バイト。