Skip to content

Latest commit

 

History

History
124 lines (91 loc) · 5.08 KB

third-week.md

File metadata and controls

124 lines (91 loc) · 5.08 KB

第三週目

三週目の内容は、前回迄の内容の応用を作成して貰います。 簡単な物から難しいもの迄用意しています。 ここまでの授業内容の集大成と発展の意味を込めていますので、 授業内に終りきらなくて悔しい人は、個人的に時間外でも頑張ってみて下さい。

ゲーム制作

問題を通して、他のゲーム制作に応用出来る機能を付けていきます。 基本的には、第二週で作成したプログラムが元になります。 問題を指定している場合は、 指定された問題で作成したプログラムを利用して下さい。 特に言及が無い場合は、各問題間で機能の共有はしません。 個別に実装して下さい。

問題にそれぞれ関係性は無いので、 出来そうな問題からチャレンジして下さい。

問題 20.

操作キャラクターがジャンプ出来る機能を付けて下さい。 一度ボタンを押すと特定の高さまで上昇し、 元々の機能により、落下する機能です。 ジャンプ中には再度ジャンプは出来ないようにして下さい。 高さは自由に設定して下さい。

問題 21.

落下ブロックが地面についた時、消滅させず、マップの上に残して下さい。 下記の様な、.push を配列を持っている変数の後ろに付けると、 配列の最後にデータを追加出来ます。 これを応用して作成して下さい。 ヒントはマップを管理している配列です。

array = []

array.push(1)
puts array #=> [1]

array.push(2)
puts array #=> [1, 2]

問題 22.

落下ブロックが地面に落ちた時に、 直ぐにゲームオーバーにならないようにして下さい。 3 回落とした場合にゲームオーバーにして下さい。 また、落とした回数をカウントし、表示して下さい。

問題 23.

問題 21 のプログラムを使用し、 ブロックを落とした回数のカウントから、 残機を減らす方法に変更して下さい。 操作するキャラクターの画像を画面の右上に残数分表示する事。 最初は残機 2 で、キャラクターは右上に 2 体分表示します。 右上のキャラクターの表示が無くなってから落とすとゲームオーバーです。

問題 24.

右から左へ向かって歩いてくるキャラクター (以後敵キャラクター) を用意して下さい。 今あるキャラクターの色をペイントツールで変えるだけでも良いですが、 元の画像は削除しない事。

また、操作キャラクターが敵キャラクターに衝突された場合、 ゲームオーバーとして下さい。 敵キャラクターが左端に到達した場合は 右から出て来る様にして下さい。

問題 25.

操作キャラクターが左右の端から画面外に出る場合に 反対側から出て来る様にして下さい。 (例えば、右から出た場合は左から、 左から出た場合は右からそれぞれ出る) 但し Window のサイズが変更されても問題無く動作する事。

問題 26.

得点の加算方法を、落下ブロックの取得数ではなく、 前回の落下ブロックの x 座標と取得したブロックの x 座標の 差の絶対値を加算する方式に変更して下さい。 但し、最初の点数の計算は、前回ブロックの x 座標を 0 にして計算する事。

問題 27.

画面右端から出現する敵キャラクターが 5 回に 1 回程度の確率で 左端から右端へ向かって移動する様にして下さい。 この時移動速度は右からの移動と同じとします。

問題 28.

右から出現する敵キャラクターが画面内に常に 3 体存在する様にして下さい。 但し、敵キャラクターの移動速度は出現時に、 1 ~ 5 の値の間でランダムに設定して下さい。 敵キャラクターの画像は全て同一の物を使用して構いません。

問題 29.

問題 20、21、23 を組み合わせた物を作成し、 ブロックの落下速度を 1 ~ 5 の間で、 出現時にランダムに設定して下さい。 この時、落下ブロックは最大で 1 個だけマップに表示する。 2 個目が地面に着いた時は、古い落下ブロックを消して、 新しいものと入れ替える。

また、右端、左端の両方から敵キャラクターが出現し、 マップの一部になったブロックに敵キャラクターが衝突した場合は、 逆方向に移動させて下さい。 画面内に同時に存在する敵キャラクターは 1 体とします。

問題 30.

問題 20、23、25、26、27、28 の機能を全て実装した ゲームを作成して下さい。

アンケート協力のお願い

アンケートリンク