人生

やっていきましょう

精神が不安定になりながら開発をしていたら思わぬ方向にうまく転んだ。

マップチップに描かれた巨大なオブジェクトをどのように動かすかを考えていた。例えば縦3マス横4マスの車があるとすると、この車を動かすには計12マス分のイベントの動作指定を行う必要がある。

確かにそれだけなら簡単だ。コピー&ペーストを12回繰り返せばいい。しかしもし途中で動作を変えたいと思った時はどうするか。12個のマス目に用意したイベントの動作指定をすべて削除し、新たな動作を12回分コピー&ペーストする必要がある。

それでも12回ならまだ頑張れる。ではこれが98マスを必要とするオブジェクトであればどうか。ひとつの動作の修正と管理に膨大な時間がかかる。気が遠くなる話だ。

ここで以前思いついたアイデアを援用する。動作指定はオブジェクトのみならず、マップに存在しない変数それ自体を対象とすることができる。これは変数を動かせるという意味ではなく、変数の値と一致するIDのオブジェクトをマップ上で動かせる、という意味だ。

これを利用して98マス分のオブジェクトの動作を一度に管理することができる。動作指定の対象を変数Nにして、Nに動かしたい動作の指示を与える。動作のあとNに1を加算する。これらを98回ループさせる。

これでわざわざ98個の動作指定を用意する必要がなくなった。ループ内の動作だけを指定すれば済むようになった。

大したことではないかもしれないが、自分の中では大きな進歩だった。これで巨大なオブジェクトを動かすのが容易になる。