第11回 何か作ってみよう「4.ムシのアイデンティティー」
|
|
11−4 ムシのアイデンティティー
では、ムシの処理です。 唐突ですが、「1匹のムシが居る」とはどういう事でしょう?哲学か心理テストのようですが、これらについて考えてみます。 1匹のムシ、と聞いてまずは、
その他、詳しく考えると、
もちろん「何を考えている?」ってのは、今からプログラミング内容になりますので、省いてあります。 こんなことをして、どうなるの?と思うかもしませんが、要は、ムシの表示や移動に関して、どのような変数が必要になるか、という事を考える材料なのです。つまり1匹のムシで、次のような属性を考えなければ、プログラム上、表現できないわけですね。
こんな感じで、必要とされる属性、いや、変数の雛型が出来たわけです。これを、早速、このムシがいるべき世界、先ほど作った土台にあてはめて具体化してみます。 最初の設定から、ムシは、壁にぶつかったら曲がって方向を転換する事になっていました。この曲がる動作も、直角に曲がることにしましょう。そうすると、ムシは、上下左右の4種類の値があれば、向きを表す事が出来そうです。また、移動量は、土台のマス目を使いますので、ま、10ピクセル単位での移動が妥当でしょう。 現在の座標も、比較的簡単に設定できますね。移動量が10ピクセルなので、基本的には、ブロックの座標と同じ系になります。 また、周囲の状況、といってもブロックの有無だけですが、これは、グローバル変数 Maze(i,j) を参照すれば良さそうです。 どうでしょう?姿以外の部分については、それほど難しくないですね。
ムシの向きは「ムシの向き」によって決まります(あれ?)、なので、ムシの向きの設定が画像IDに影響を及ぼしそうです。 今回作ろうとしているのは、壁にぶつかったら直角に曲がる、としました。では、どの方向に曲がるかを考えてみると、一番単純なのは、ぶつかったら、右に曲がる、という一方的なものです。 そう、左から右へ歩いて壁に当たれば、向きは、下になります。下に向かい歩いていて当たれば左になります。 つまりムシの方向は、最初に右を向いていたとすれば、右→下→左→上→右→・・・となります。これをそのまま、数値化して 向き:右=1、 下=2、 左=3、 上=4 とすれば、ぶつかったときの処理は、次のように結構単純にできそうです。 ![]() ちなみに、この処理は、全体の処理(予想)の一部分です。 ![]() さて、そうすると、画像IDに割り当てる番号、つまり、画像を読みこむ順は、右、下、左、上を向いた画像の順になるように読みこめば良いですから、先ほどプログラムの続きであれば、右向きの画像が1006になり、順に1007、1008、1009となるように読み込めば良いわけです。 向き:右=1、 下=2、 左=3、 上=4 画像: (1006) (1007) (1008) (1009)画像ID = 1005 + 向き これで、画像IDと向きの関係もスッキリしました。 ま、NS BasicのVer.2になって、画像の参照ボタンが付き、後からの変更が楽に出来るようになりましたので、それほど意識しなくても良くなったのが嬉しいことですね。 さて、まとめてみると、次のようになりました。
|
第11回 何か作ってみよう「4.ムシのアイデンティティー」
|