AREA 021
Featuring AlphaScript

LEVEL 4 敵と味方の最強コンビ

 

ついにひよこのライバル(?)が現れます!


ゲームの目的

ひよこを操作できるようになったところで、 そろそろゲームの目的をはっきりさせておかないといけませんよね。  今の状態から考えられるのは、 ひよこが得点になるアイテムを集める、 ひよこがおじゃまオブジェクトを避ける、 といったところでしょうか。 

ただ、単にひよこがアイテムを集めるゲームだと、どこで終わりにすればいいのかわかりませんし、 いくつものオブジェクトが同時に現れると、いきなり難しくなってしまいそうです。  ということで、とりあえず1体の敵キャラクターを登場させ、それをひよこが避ける、というゲームにしようと思います。  それだけでも、これまでに比べるとかなり複雑になりそうです。


敵の詳細

まず、敵の動きですが、これは初代ひよこと同じで、左右に動くだけです。  でも、地面の高さを移動しているため、ひよこにとってかなりの邪魔者になります。  これなら敵として活躍してくれそうです。

次に敵のグラフィック。  画像を用意するとまたいろいろ面倒なので「赤い丸」で済ませることにします。  さすがに、ひよこのような温かみ(?)には欠けます。  しかし、形が機械的な四角と比べれば、だいぶ印象が良いはずです。

そして次は当たり判定ですが、ひよこと「丸」が当たったかどうかを厳密に判定するのは大変です。  そこで、思いっきり単純化して、両方とも四角として判定させてしまいます。

ただし、ひよこと丸のサイズをそのまま四角とすると、 ちょっと触れたか触れないか、という程度でも当たったことになってしまうので、判定の範囲を小さめにしています。  当たったように見えたけどミスにならなかった、というぐらいがちょうどよいのです。  極端な話、判定が中央の1,2ピクセルだけでも、当たれば問題ないです。 (ファミコン時代には、判定がシビアなゲームが多かったかも?)

四角の当たり判定をする関数もありますが、ここではそれは使わずに普通に判定しています。


ゲームオーバー

とりあえず、ひよこが敵に当たったら即ゲームオーバーということにします。  この時点では、ミスしたかどうかがわかればよいので「ひよこを消す」だけで済ませてしまいました。  すごーく手抜きですが、これが一応「ゲームオーバー」です。(前回でリセット機能を付けたため、何回でもやり直せます^^;)  でも、それを表すメッセージも表示されないのは、ちょっと寂しいですね。 後で改良することにします。


スクリプト内の改良

これ以降は、あちこちに記述する定数(決まった数値)を、冒頭で文字列として定義し、わかりやすく&後で修正しやすくします。  今回は、地面のY座標とフィールド左右の端のX座標を定義しています。  これで、地面の高さやひよこが往復する幅を簡単に変更できるようになりました。  せっかくですから、いろいろいじって遊んでみてはいかが?


次の課題

こんなスクリプトでやってみた結果、 このようにちょっとにぎやかになっております♪

「敵」が加わったことにより、一気にゲームに近づきました。  ただ、ルールはあっても ”ゲームの目的” が漠然としています。  正確に言えば、敵を避けるという目的はあっても、それをすることによって何も起こらないのが問題です...。  というわけで、次のステップでは、ゲームではお馴染みの×××を追加してみます。(って、隠すほどのものじゃないですが^^;;)

 

ページ一覧に戻る  次のレベルへ!

Copyright (c) Rabit 2005-2012 all rights reserved.