昔「倉庫番」というゲームに、一日中ハマっていた、弓削田です。
ゲームにインタラクティブ要素を出すために、マップ上に配置されているオブジェクトを
ユーザーキャラが動かせる処理をつけてみたいと思います。
この仕様によって、かつての「倉庫番」のようなゲームが作れてしまうな〜と思って、
機能追加を思い立ちました。
デモ
とりあえず、完成したサンプルを見てもらうと、簡単に完成しているように思えますが、
実は非常に苦しい処理の繰り返しでした。
今回気がついた事
移動できるオブジェクトと、移動できないオブジェクトは、オブジェクト毎のデータにフラグを立てることで簡単に区別できるのですが、
これまでは、キャラクターが移動する先に、何かオブジェクトがある、または、別のキャラクターがいる、または、マップで移動禁止のセルという判定だけで良かったんですが、
移動できるオブジェクトを移動しようとした時に、そのオブジェクトのさらにその先に移動できるかどうかを判定しなければいけませんでした。
実は、このことに気がついていなくて、軽い気持ちで機能追加をして、ドツボってしまっていました。
でも、移動処理が複雑な関数になっていたのを、細部に分解して、効率化したことで、
まあまあ、プログラムとしての精度もアップさせることができました。
今後、移動させるオブジェクトも、もう少しフラグが追加されそうな気もするので、この手のプログラムのリファクタリングは
重要な作用工程だと考えられますね。
とりあえず、処理としては完成したので、次回は、「倉庫番」もどきゲームでも作ってみたいと思います。
お楽しみに!!!
0 件のコメント:
コメントを投稿