14:31:05)追加された行はこの色です。削除された行はこの色です。[#e6a9fba8]と、いうより誤字情報です。15,22:?<COLOR>(RED){"COMPLETE!!"}}}が正しい表記です。[#h86aeaea]パット見、コンソールゲームのようで、実は全力でスプライトを動かしてます。~スプライトの書き換え、BGの書き換え、フォントの書き換えなど、~そのすべてを他リソースに頼らず、プログラムで実行しています。~また、敵の配置、行動ルーチンのすべてにおいて、ランダム要素を排除しているので、~スコアアタックが成立するようになってます。~パット見、COLOR(#880000){SIZE(24){コンソールゲーム?}}のようで、実はCOLOR(#880000){SIZE(24){全力で}}スプライトを動かしてます。~COLOR(#555500){SIZE(24){スプライトの書き換え、BGの書き換え、フォントの書き換え}}など、~そのすべてを他リソースに頼らず、COLOR(#880000){SIZE(24){プログラムで実行}}しています。~また、敵の配置、行動ルーチンのすべてにおいて、COLOR(#555500){SIZE(24){ランダム要素を排除}}しているので、~COLOR(#880000){SIZE(24){スコアアタックが成立}}するようになってます。~難易度は、ステージ4くらいから、私仕様の難易度です。~個人的にステージ5は一番うまくできたと思うので、シューティングの好きなかたはぜひ、遊んでください。[#sa970d09]十字キーで自機移動、Aボタンでショット~8方向移動+1ボタンという、昔ながらのシューティングゲームです。[#ab37b4a2]プログラムで、かなり色々とプチコンのプリセットデータを書き換えるので、~起動からしばらく、ロード画面に入ります。~ローディングのタイムバーを、遊び半分で用意してみました。~タイトル画面には4つのメニューがでます。Aボタンで決定します。[#f01334c4]ステージ1から始まります。~自機を操作して敵を倒してください。~なお、特定の条件を満たすと、ステージセレクト機能がつきます。[#w0d3ec71]ハイスコアTOP30を表示します。~なお、得点カンストは500000点です。FILE[#u8b530c7]ハイスコアを記録しているMEMファイルを削除し、~プログラムを再起動します。[#y430b78e]ハイスコアを記録して、ゲームを終えます。~なお、プチコンダイアログをタッチミスして、キャンセルしても大丈夫です。~セーブが正常に行われなければ、終了しないようにしてます。[#of4b6288]雑魚敵を打ち落とすと、一時的にその場所に、ひし形のバリアが展開されます。~敵がそのバリアに触れると、触れた敵を打ち落とし、また、その場所にバリアが展開します。~こうして、連鎖的に敵を落としていくのが、攻略のポイントになります。[#p2983203]バリアで敵を落とすと、ハート型のボーナスアイテムが出現します。~バリアを切らさないように、ボーナスアイテムを獲得することで、コンボがカウントされます。[#y9b90452]コンボ継続中は、得点の加算にもボーナスが付きます。~ハイスコアラーを目指すならば、うまくコンボをつなげてください。[#b7e92b9a]残機のシステムはありません。同じステージをリトライするか、タイトルに戻るか選択してください。~どちらを選んでも、ハイスコアチェックが行われ、スコアはリセットされます。[#dd5a02c8]全7ステージです。~ステージは敵の配置だけなので、簡単に増やすことは出来るようなルーチンを組んでますが~まあ、満足してるので、たぶん増やさないと思います。[#cf151388]現在2つ用意しています~1つは条件開放のステージセレクト機能です。~もう1つは、とりあえず秘密で。~ヒントは裏技系で、デバッグ機能を付加する機能です。[#we47526f]#region(ネタバレを含みます。[#b3929b14]GPUTCHR命令と、GSPOIT命令、CHRSET命令を使います。~-COLOR(#5555FF){GPUTCHR}~CHRデータを、グラフィック画面の指定位置に書き込みます。~この命令は、倍角サイズがある程度自由なのが魅力です。~-COLOR(#5555FF){GSPOIT}~指定位置のグラフィック面の色を取得します。~本来は、0...255のbmpカラーで取得するのですが、~フォントデータは単色のため、0でなければ"F"(16進数の15)を返すように使ってます。~-COLOR(#5555FF){CHRSET}~任意CHRデータに書き込む命令です。8x8サイズで1キャラなので、基本となる16x16のスプライトキャラへは、合計4ヶ所に書き込むことになります。0,0,16,16,0}}これで、コンソール文字(BGF)の▲が、4分割されて、スプライトの0番(SPU0の0から3番)に書き込まれます。0番指定すると、16x16の▲が、スプライトとして表示されます。[#u475e1a8]今回は、ステージ毎にデータ文でまとめておき、それをステージ開始前に配列変数に落とすという方法をとりました。~たとえば、200フレーム目に敵A出現。300フレーム目に敵Bが出現とすると、事前に多目に宣言しておいた配列変数に、~#basic{{F(0)=200:E$(0)="A"F(1)=300:E$(1)="B"}}と入力します。(実際はRESTOR,READ,FORを利用)~そして、メインループで利用します。今回は、200になったら、@AへGOSUBし、~@Aの処理(敵の出現処理)を行ったあと、Iをカウントアップ。~Tが、F(1)になるのを待つ。~指定したタイミングで指定した処理を行えます。[#x6796790]最初組み上げたときは、ものすごい処理落ち具合でした。~その最大の原因は、当たり判定です。