MSXでもバリバリとゲーム作りをするはず…だったのだが…
まず、好きだったシューティングゲームを作ろうと考えた。
縦スクロールシューティングで、ゼビウス風の自機に、スターフォース風の敵を組み合わせたものという、パク…、もといリスペクト全開な内容。
背景は、文字のキャラクターを別のデザインに変えるように、VRAMにデータを書き込み。
例えば、アルファベットのaのデザインをVRAMで書き換えると、PRINT "a"とすると、デザインが変わった文字が表示される。
これを複数並べて、背景にする。
縦スクロールのシューティングゲームは、通常上から下にスクロールする。
そうすると、画面全体の内容を一つ下に下げる(移動)した後に、最上段に次のデータを書き込む必要がある。
小学校高学年のレベルでは、理屈はわかっても、どうプログラムすればよいか、即座に答えは出なかった。
(私ができなかっただけで、この頃のすごい人たちは小学生・中学生のころからバリバリだった。現役でゲーム会社で制作されている方々もいて、尊敬する)
結果、敵からずっと後退しながら逃げているという設定にして、下から上にスクロールする逆転の発想wwをしてみた。
これなら、画面最下部でPRINT文で1行文書くと、自動的に上にスクロールしていくのだ。
スクロール問題はこれで解決ww
次は敵キャラクタ。
スターフォースでは、滑らかに曲線的に動く敵キャラが多い。
その動きを作るには、何やら三角関数なるものがいるとか。
そう。sin、cosである。円運動はsinとcosの組み合わせで、XとYの移動量を計算してあげれば、曲線的に動かすことができる。
しかし小学生の頭では、さすがに三角関数を正確に理解することは不可能だった。
結果、どこかのプログラム参考書を例に、三角関数であらかじめ計算した移動量を、配列変数に格納して取り出すことにした。
友人Kは、絵心があり、ドット絵をかいてもらった。
結局、画面上で動かしたものの、あまりのスピードの遅さに、ゲームどころではなかった…
そして、無謀にもマシン語を使おうと画策したのであった。