n:bit かわくだり

改良版 かわくだり

ゲームを面白くするため、効果音を鳴らしたり、流木をだんだんはやくなるしくみを入れて、改良しましょう。

このプログラムのダウンロード:かわくだり


プログラムの説明

1.「流木」の動きを作る

スピード変数は、実は停止時間なので、値が小さいほど動きが早くなることになります。
初期値は0.5秒(500ミリ秒)なので、比較的ゆっくりです。
「「流木」のyを1だけ増やす」ブロックを実行すると、今の位置のLEDを消灯して、新しい位置のLEDを点灯してくれます。


2.「流木」が「自分」にさわったかどうか、当たり判定をする

「「流木」が他のスプライト「自分」にさわっている」ブロックを使うことで、当たり判定をすることができます。これは、「流木」と「自分」のxy位置が同じであるという条件のことです。

今回のゲームでは、「流木」と「自分」がぶつかったときは、ゲーム終了としました。
まず、n;bitの赤LED(P2端子)を点灯し、「おそうしき」のメロディを鳴らします。
「ゲームオーバー」ブロックを使って、エンディング処理と得点表示をします。
ゲームオーバーの後のブロックも実行していますが、LED表示はされない(ゲームブロックは止まっているように見える)ので、使い方に注意してください。
実行も止めたければ、「一時停止する」「再開する」ブロックを組み合わせて使います。


3.あたらしい「流木」を作る

かわくだりゲームを継続できるなら、流木が最下段まで来たかどうかを判定します。
「流木」のy位置が4なら、最下段と判断します。

流木をクリアしたということで、n:bitの黄LED(P1端子)を点灯(値を1に)して、ジャンプアップメロディを流します。

次に、得点を1増やします。
ゲームにある、「点数を1増やす」ブロックを使わないのは、このブロックを実行する事に画面にも点数を表示してしまうため、使いませんでした。

これで、流木を1つかわす毎に、1点づつ増やすしくみができました。

もし、スピードが50より大きいなら、
 スーピードを50減らします。
でなければ、
 スピードを50にします。
初期値が500なので、流木をクリアする毎に、450,400、350と減っていくことで、流木の速度が上がり、難易度が上がるのです。
そして、無限に早くならないように、最速値を50にしました。
このような仕組みを、ゲームパラメーターといい、ゲームの面白さやツマラナさをを決める、重要なプログラミングになります。
ゲームの難易度を下げたいなら、初期値をもっと大きくして、10づつ減らすなどを工夫してもよいでしょう。

「一時停止」ブロックで、タイミング調整をします。

「流木を削除」ブロックで、流木のLED位置を消灯します。

最後に、流木の新しいLED位置を乱数で決定し点灯します。
「ずっと」ブロックを繰り返します。

4.「自分」のうごきを作る

「自分」の動き方は左右だけなので、次のように簡単に作れます。
「1ドット進める」ということは、x方向に右に1ドット移動するという意味です。
4ドットを超えても4のままなので、位置の範囲チェックもする必要がありません。
同じく−1ドット進めるは、x方向に左に1ドット移動するという意味です。


改良しよう

1.「自分」を左右だけでなく、前後にも動けるようにしてみましょう。
  Y方向に動くためのプログラムを追加すればよさそうです!!
  ただしボタンが足りないので、すこし工夫が必要です。

2.流木を2つにしてみましょう。
  2番目の流木ためのxy位置が必要なので、スプライト変数を追加することになります。
  流木2の出現位置やタイミングも考える必要があります。
  あたり判定もそれぞれ必要なので、プログラムは少し考えて作必要があります。


この教材は「Creative Commons — CC BY-SA 4.0」の下に提供されています。