平面の彼方に?
(表示されるデータが違っている場合は「init all」としてください)
メモリージャグラーをお持ちの方は、ここで使用しているソースをダウンロードして使用できます。
スプライト使用の学習も兼ねて、2D表示のゲームを作ってみました。
- button.bas:ソース・画面図
画面を飛び交う記号に枠を合わせて、記号に合ったボタン(○×△□)を押してください。
2人プレイ専用です。左アナログスティックと4ボタンを使います。
1P側が赤、2P側が青の枠を操作します。
画面上の記号に合ったボタンを押すと10点入って消えますが、同じのを続けて消すと9,8,7...と得点が下がっていきます(最低3)。違うのを消すとまた10点になります。間違ったボタンを押すと-3点です。
開始時に、1P側コントローラで記号の最大数とプレイ時間を設定できます。
制限時間を越えるとゲーム終了です。
公式BBSをご覧の方はお気づきかもしれませんが、これはそこで募集(?)されていた「早撃ちバキューン」タイプのゲームの発展案として出していたのを更にアレンジしたものです。
ちょっとここに置いた画面図では暗くて見づらいですが、赤と青の枠が表示されています。
平面の彼方を目指すにはスクロール、というわけでスクロールサンプルを作ってみました。
- map1.bas:ソース・画面図
ただスクロールするだけです。ゲームでも何でもありません。
マップデータを読み込んで(290行以降)、それぞれをスプライトに定義(900行付近)しています。そしてメインループ内でsprposによりスプライトを移動(210行付近)させて縦スクロールを実現しています。データは文字列にして入れ込んであり、アルファベットの区別でパターンを仕分け(400行以降)しています。
しかし最初で全部のマップを定義してそれを繰り返し回しているだけなので、小さなマップにしか使えないという弱点があります。だからあまりお勧めできる手法ではないです(汗)。
140行のcmaxを大きくすると、スピードがゆっくりになります。ゆっくりというかガタガタという感じですが。
このサンプルパターンを扱ってて思ったんですが、このあたりの「縦シューティング用」とされているサンプルは、単色系パレットしか用意されてないんですかね? どうもうまく合致する多色系パレットが見あたらないようで…? まあコレはコレで渋くて味があると言えなくもないですが。
スクロールサンプルの続きです。
同じサンプルテクスチャ内にあると使いたくなるもので、敵戦闘機みたいなイメージで入れてみました。
- map2.bas:ソース・画面図
相変わらず、ただスクロールするだけです。
画面図で灰色っぽくチラチラしているのが飛行機です。
ついでに背景色を変えたりちょっと地形やスクロール速度も変えたりしています。
ソースの追加事項はほとんど飛行機関連ですが、1380行以降で左右に逸れる動きをつけています。斜めに向いたパターンがあるのでsprtexで切り替えています。
スクロール部分の左右に黒い矩形を置いて(990行以降)、画面から外れる飛行機を隠しています。
少しは雰囲気らしいモノも出てきましたでしょうか。本格的なシューティングなら敵キャラごとに動きのパターンが異なったり編隊飛行してたりするんでしょうが…
さらに続くスクロールサンプル。
ここまできたらもうゲームとしての体裁を一応でも整えておかないと夢見が悪そうなので、とりあえずゲームらしくしてみました。
- map3.bas:ソース・画面図
縦スクロールシューティングゲームです。
左スティックで操作、○ボタンで射撃です。
同じところをぐるぐる回るだけで敵も代わり映えしませんが。
それでもいちおう敵のスピードがだんだん速くなったり(2410行)あるいは時折速いのが混じったり(1360行)していて、変化がないわけではありません。
妙に手こずってしまったもので、あちこち記述が汚かったり余計なモノが残ってたりするかもしれません。
…って、思いっきりデバッグ用の表示(の痕跡)がソース上に残ってたので削除しました。やっぱり半分寝ぼけた状態でやるもんじゃないですねー。
トップへ