第4回は「1画面のマップをつくろう」です。
(背景をつくろうを最初から見る場合はこちら)
1画面分のマップをDATA文で作成
それでは実際にマップを作っていってみましょう。
今回は4種類のマップチップ用の文字列(空白、1、2、3)を使い、横に25個、縦に15個の文字列データを作ってください。
サンプル(配置は適当で良いですが、一番上の行に何かしら入れておいて下さい)

(個数がわかりやすいようにコメントを入れています)
マップの表示(1行分)
早速つくったマップを表示させたいと思いますが、まずは1行分(一番上の行のDATA)の表示になります。
第3回のプログラムを以下のように調整してください。
16行目 「CHIP_NO$==”0″」の文字列「0」を「空白の文字列」に変更

実行結果はこちら

1行分のマップが表示されればOKです。
12行目はDATA文の1行目を全て読み込ませるため、ループさせる回数を25回分(TO 24)に変更しました。
16行目は「CHIP_NO$==”0″」の「0」を「空白の文字列」に変更しました。
今回は何もない草原のマップチップ(&HE8C1)を多く使うため、空白にしておくことで手間を減らすことができます。
(そのままだと毎回 “0” を入れる必要がある)
マップの表示(2行目以降)
2行目以降のマップも表示させたいと思いますが、ここで第3回の「FOR~NEXT」を思い出してください。
第3回の解説では内側のFORと外側のFORがありました。
現在は横一行分のマップが表示されており、これは内側のFORにあたる部分になります。
そのため、外側のFORを追加して、次の横一行の表示、さらに次の横一行の表示・・・と15行分表示する部分を作っていきます。
先程のプログラムを次のように調整してください。
※見やすくするために改行位置が少し変わっています
23行目 外側のNEXTを追加
13行目 READの位置を変更
20行目 TPUTの座標を(IX,0)から(IX,IY)に変更

実行結果

「READから内側のFORの部分」をまるまる外側のFORの中に入れる形となります。
表示させるY座標をIYに変更したことで、最初は0行目に表示、次は1行目に表示・・・と進ませることができます。
注意点としては「READ」部分も含めること。
このプログラムでは
・外側のFORが行を進ませるもの
となっていますので、新たな行のDATAを読み込ませるには、行を進めた後(外側のFORの中)にREADを入れる必要があります。
(第2回の「READするたびに次のDATAを読み込む」という動作)
ここまでで1画面のマップが完成しました。
1画面固定のゲームであればこの方法で作成が可能です。
マップデータを複数用意して、次のステージ開始時にRESTOREで新たなマップデータを呼び出せば、何面でも増やすことができます。
マップの修正
「少し木の部分を増やしたい」「山をもう少し削りたい」といったように、完成したマップを修正する場合「Insert」キーを使うと便利です。
(キーボードによっては「Ins」と書かれている場合があります)
「Insert」キーを押すと入力する所が「縦棒」から「四角」に変わります。

この状態でキーを打つと四角が重なっている所の文字が上書きされるため、改行位置をそのままの状態で変えたい部分だけ変更することができます。
(文字を消したい時はスペースキーを押す)
<参考動画>
次は横スクロールシューティングを意識したマップを作ってみましょう。
第4回は以上になります。
「背景をつくろう」のトップに戻る場合はこちら

コメント