モンスターを食べる

パワー餌の効果がある時間を決めてそのあいだはモンスターをいわゆる「いじけ状態」にさせます。いじけ状態にあるモンスターは動作方向が逆方向になり、移動速度も遅くなります。得点は1匹目が200点、2匹目が400点、3匹目は800点、4匹目は1600点とします。パワー餌の効果がある時間は10秒程度です。

OnEatPowerFoodメソッド

パワー餌を食べたかどうかはOnPacmanMovedメソッド内で判断することができます。パワー餌を食べたら50点を加算してOnEatPowerFoodメソッドを呼びます。

OnEatPowerFoodメソッドが呼ばれるとモンスターをいじけ状態にします。そのためのフラグを用意します。

いじけ状態になると移動方向を逆にして移動速度も低下させます。表示もいじけ状態に変えます。

MoveMonstarメソッドの変更とIjikeMonstarMoveDirectメソッドの作成

いじけ状態のモンスターは動作速度するので、そのためのメソッドを作成します。IjikeMonstarMoveDirectメソッドは通常の2分の1の速度でモンスターを移動させます。

通常時は毎回モンスターの移動方向を決める必要がありましたが、いじけモンスターがセルとセルの中間にいるときは移動方向は変更しないようにしています。

いじけ状態になってからの移動回数が奇数のときはセルとセルの中間にあるので位置の補正はしていません。また移動方向を決める処理もしていません。

パワー餌の効果を管理する

パワー餌の効果はタイマーで管理します。パワー餌の効果が切れたらOnEndPowerFoodメソッドが実行され、モンスターがいじけ状態から復帰します。

モンスターを食らう

パワー餌の効果があるときはモンスターを食べる処理も必要です。

モンスターとの当たり判定をするときにモンスターがいじけ状態かどうかを調べます。いじけ状態であるならOnEatMonsterメソッドが呼ばれます。

OnEatMonsterメソッドでは得点を計算するためにパワー餌を食べてからモンスターを何匹撃退したかも記憶させています。そして得点は原作と同じように、1匹目が200点、2匹目が400点、3匹目は800点、4匹目は1600点としています。

不思議な話なのですが、パワー餌を食べたパックマンに撃退されたモンスターは巣にもどるといじけ状態から復帰した状態で再生されます。パワー餌の効果があるときでも再生したモンスターにはやられてしまいます。(パワー餌はパックマンのパワーをアップさせる餌ではなく、モンスターをいじけさせる餌なのか??)

不思議な話ですがそのようになっているので、これもそのような仕様にしています。

これはスコア表示用のプロパティです。