ICE-MAN for PICO-8で、キャラクターの移動を実装中。
移動しようとする方向のキャラクターを調べて、ブロックやアイスブロックなら進めない様にコードを書かなくてはならず、if文を何回も並べて書かなくてはならず、躊躇していた所、昔の記憶がよみがえりました。
ステージ上には、主人公バッキーの他にブロック、ハシゴ、金塊、アイスブロックが存在します。
それをブログラム上では、各キャラクターを数値化して管理しています。
主人公バッキーの移動で、移動方向にブロックやアイスブロックがあれば、行くことが出来ないルールを記述します。
これを一方向に対して、キャラクタ毎にチェックをしないといけないので、大量のif文を記述しなければなりません。
仕方なく、取り掛かろうとした時に、ふと昔の記憶が蘇ったのです。
オリジナルのMSX版のICE-MANは、BASICで記述されていて、ソースコードを読んで解析していました。
そして、移動のルールを記述しある所で、「特定の数値より少なければ、進むことが出来る」という様な事が書かれていました。
ここで、空間は0、金塊は1、ハシゴは2、ブロックは3、アイスブロックを4と数値化することで、「進行方向のキャラクタが、2(ハシゴ)以下なら、行くことが出来る」とコードを書くことが出来ます。
空間はもちろん、金塊は重なることで取得できますので進めますし、ハシゴも進めます。
という事で、このキャラクタを数値化する記述方法で、変更しました。
今では、0が空間、1がブロック、2がハシゴ、3が金塊で、4がアイスブロックになっていましたので、1のブロックと3の金塊を入れ替えました。
これで、処理しやすいように数値化したので、移動処理に取り掛かります。
コメント