美食と猫と自作ゲーム

今のところ、自作ゲーム記事ばっかり。

自作ゲーム55 画面スクロール

本作は一つのエリアあたり最大16マップで構成され、画面の端に行くとスクロールして隣のマップが表示される。マップデータは16文字×13行分で、一マップあたり16文字を1ラインとした13個のデータをそのままマップ用変数M$(x)に格納してある。圧縮というテクニックを用いてないので容量はくうが、変更・改良がしやすくなっている。(オールベーシックにこだわる理由がここにある。)

スクロールは理屈的にはシンプルで、特に縦スクロールは、表示すべき13ラインのうち移動先のマップラインを一ラインづつ、増やしながら移動元のマップラインを減らし(合計は必ず13ライン)表示するという仕組みである。

縦スクロールなのでY軸のみ変動する。3800行が上向き、3810行が下向きのスクロール。Y軸増減前にGOSUB590とあるが、これは主人公の表示ルーチンに飛んでおり、スクロールにあわせて主人公をマップ上から下または下から上に移動させている。

 

 

横スクロールの場合は移動先のマップを一文字分づつ抜き出したデータと、一文字分づつ減らした移動元マップのデータを足したライン(必ず16文字)を作り、表示する。元のマップデータの右端や左端から指定分を抜き出す命令(right$、left$)を用いている。

これと同じ要領でMID$を使って、抜き出す位置を指定すると、洞窟のように主人公の周りのみを表示する事ができる。

※火矢の通過している周囲もマップ表示し、フラッシュのような、使い道にする予定だが、今の所メモリ不足で手付かず。

※一度635行で空白(黒)で埋め尽くした後に636行か637行でマップ表示している。636行はアイテム  キャンドルをもっていない場合。主人公のいる位置しかマップが表示されない。

※三番目のダンジョンにいるケイブバードは、向こうからは攻撃してこないが、攻撃をくらうと反撃してきてキャンドルを食べてしまい、突然暗闇の中に残されるという恐怖を味わえる。炎に包まれたような変異種もおり、その羽はイベントアイテムと、なっている。

 

今回は以上。