“RUN” それは魔法の言葉

私とコンピュータの思い出を、だらだらと綴ります。最近はHSP3でのゲーム作り日記です

23.MSXでもゲームを作る!はずが…

MSXでもバリバリとゲーム作りをするはず…だったのだが…

まず、好きだったシューティングゲームを作ろうと考えた。
縦スクロールシューティングで、ゼビウス風の自機に、スターフォース風の敵を組み合わせたものという、パク…、もといリスペクト全開な内容。

背景は、文字のキャラクターを別のデザインに変えるように、VRAMにデータを書き込み。
例えば、アルファベットのaのデザインをVRAMで書き換えると、PRINT "a"とすると、デザインが変わった文字が表示される。
これを複数並べて、背景にする。

縦スクロールのシューティングゲームは、通常上から下にスクロールする。
そうすると、画面全体の内容を一つ下に下げる(移動)した後に、最上段に次のデータを書き込む必要がある。
小学校高学年のレベルでは、理屈はわかっても、どうプログラムすればよいか、即座に答えは出なかった。
(私ができなかっただけで、この頃のすごい人たちは小学生・中学生のころからバリバリだった。現役でゲーム会社で制作されている方々もいて、尊敬する)

結果、敵からずっと後退しながら逃げているという設定にして、下から上にスクロールする逆転の発想wwをしてみた。
これなら、画面最下部でPRINT文で1行文書くと、自動的に上にスクロールしていくのだ。
スクロール問題はこれで解決ww

次は敵キャラクタ。
スターフォースでは、滑らかに曲線的に動く敵キャラが多い。
その動きを作るには、何やら三角関数なるものがいるとか。
そう。sin、cosである。円運動はsinとcosの組み合わせで、XとYの移動量を計算してあげれば、曲線的に動かすことができる。
しかし小学生の頭では、さすがに三角関数を正確に理解することは不可能だった。
結果、どこかのプログラム参考書を例に、三角関数であらかじめ計算した移動量を、配列変数に格納して取り出すことにした。

友人Kは、絵心があり、ドット絵をかいてもらった。
結局、画面上で動かしたものの、あまりのスピードの遅さに、ゲームどころではなかった…
そして、無謀にもマシン語を使おうと画策したのであった。