プチコン4 背景をつくろう5「横に長いマップをつくろう」

サンプル

第5回は「横に長いマップをつくろう」です。
(背景をつくろうを最初から見る場合はこちら

横スクロールシューティング風の背景をつくっていきたいと思います。

 

横に長いマップデータをつくろう

当然スクロールさせるには2画面以上のマップを作成しないといけませんので、DATAを右に伸ばしたものを準備しましょう。

(説明のためわかりやすい背景に変更しました)

画像は見切れていますが今回は横75個分のマップ(25個を3画面分)を用意しました。

 

横に長いマップにするための調整

それでは第4回のプログラムを調整していきます。

現在表示している画面の右側(の見えない)部分に追加で画面を表示させる形で作っていきます。

7、8行目 10、11行目 変数追加
13行目 TSCREENの幅・高さを追加した変数に変更
17、19行目 FORの終了値を追加した変数に変更

大きなマップをつくるため、まず幅・高さで使う変数「CX」「CY」を追加。
(1画面に置ける個数「CX=25」「CY=15」としておきます)

そして作成する画面の分だけ増やせるよう変数「MX」「MY」もあわせて追加。

今回は横に3画面分作成したので「MX=3」としています。

 

あわせてFORの終了値もマップを増やす分が必要となるため、「幅・高さ」から-1した形に変更します。

 

実行結果はこちら

見えない右側にマップチップが置かれている・・・はずなのですが、これではちゃんと作られているかわかりませんね^^;

 

ということで、確認のためにENDの前に以下を追加してください。

 

実行結果はこちら(動画です)

問題なく作られていることが確認できました。

 

TOFS の解説

TOFSはテキストスクリーンの表示座標を変更(設定)するものになり、

TOFS スクリーンID , X , Y

の形で記載します。

※X,Yは文字サイズ単位では無くドット単位

 

流れとしては

・元の位置から200ドット左側にずれた背景(Xとしては-200)を表示
・元の位置から400ドット左側にずれた背景(Xとしては-400)を表示

しています。
(WAITは背景の推移がわかるように入れています)

 

少しわかりづらいですが

(右側に隠れている)背景を
 左方向(Xがマイナスの方向)にずらして
 現在見えている画面に表示した

というような感じだと思っていただければ。

 

TOFS の注意点

先程「ずらす」と説明しましたが、実際には現在の位置(座標)からずらしているではなく、元の位置(座標基準点)からの座標の背景を表示するものです。

(TOFSをした分だけずれて表示されるのではなく、TOFSで指定した座標の背景が表示される)

例えば「TOFS 3,-200,0」を2回記述しても「-400」の位置が表示されるわけではなく、「-200」の位置が2回表示される、ということです。

仕組みとしては「SPOFS」と同じですね。

 

自動でスクロールさせてみよう

それではグラディウスのような横スクロールシューティング風に右に進んでいくようにしてみましょう。

以下のように調整してください。

7、11行目 スクロール用変数「X_SC」「Y_SC」を追加
31~37行目 確認のために入れたWAIT、TOFSの部分を自動スクロール用に調整

 

実行結果はこちら(動画です)

やっていることは初心者講座03と同じですね。

初心者講座ではキャラクターを動かしていたところを今回は背景を動かしています。
(34行目の「X_SC=X_SC-3」)

そして35行目のIF文で条件を満たしたら(作成した画面数分スクロールしたら)スクロールを停止する(作成した画面数の座標で停止する)処理をしています。

 

自動でずっとスクロールさせてみよう(ループ)

40行目の「THEN」以降の部分を初期位置(X_SC=0)とすることで、再度最初からスクロールさせることができます。

「TOFS」で表示する座標を初期位置(X_SC=0)に戻しているので当たり前かもしれませんが、見た目的にはおかしな動作ですね^^;

 

これは「最後の背景」と「最初の背景」の見た目が異なるため発生しているので、それらを同じにすれば違和感なく無限ループにすることができます。

 

以下のように調整してください。

9行目 「MX=4」に変更
4画面目のマップデータを作る(1画面目の背景と同じもの)

これで3つの背景がループして見えるようになりました。
(実際には4画面作成していて、4画面目は1画面目と同じ背景)

次回は縦スクロールを作ってみましょう。

 

第5回は以上になります。

第6回「縦に長いマップをつくろう」へ進む

 

背景を作ろうのトップに戻る場合はこちら

 

コメント

タイトルとURLをコピーしました