追加マップvol.3-2
お久しぶりです、東京経済大学のおみぬーです。 前回のブログでは、モンスターの動き方を決定するコードを紹介しました。 今回は改造後のコードを紹介します。 モンスターの動きを変化させるために変更した箇所は、moveメソッドです。 this.move = function () { this.movecounter(); if (this.movecnt > 0) { return; } if (this.dx == 0 && this.dy == 0) { this.dx = 1; this.dy = 0; } while (map[this.py + this.dy][this.px + this.dx] != 9) { switch (Math.floor(Math.random() *4)) { case 0: this.dx = -1; this.dy = 0; this.dir = -1; break; case 1: this.dx = 0; this.dy = -1; this.dir = -2; break; case 2: this.dx = 1; this.dy = 0; this.dir = 1; break; case 3: this.dx = 0; this.dy = 1; this.dir = 2; break; } } } 一つ目のif文では、モンスターがマスを移動中moveメソッドから抜け出すようにしています。 二つ目のif文では、モンスターの初期移動方向を指定しています。今回の場合は右方向に進むように指定しています。 そしてその後のwhike文では、初期移動方向以外でのモンスターの移動方向を決定しています。 モンスターの移動先が通路でない場合、switch文で0、1、2、3のいずれかの値をランダムに決定し、0の場合は左、1の場合は上、2の場合は右、3の場合は下方向へ移動します。 このswith文は通路を移動している場合には実行されません。そうすることで、壁に当たるまで移動方向を変えない、つまり直線移動するよ...