演習問題

問題1-1: ブロック崩し

以下のブロック崩しのプログラムを完成させたい。 バーの中央にボールが当たると、ボールがブロックに跳ね返されないようになる。(次のスライドに続く)

問題1-1: ブロック崩し

マイ ドキュメントの下の Processing フォルダの中に blockBreakNormal という名前のフォルダを作成し、 以下の4つのファイルを置きなさい。 BlockBreak.pde 内に空欄が2箇所あるので、そこを埋めてゲームを完成させなさい。

提出するスケッチフォルダ名: blockBreakNormal

問題1-1: ブロック崩し

なお、空欄のままではブロックが存在しないが、プログラムの実行は可能になっている。

問題1-1: ブロック崩し - ブロックの配列

問題1-1: ブロック崩し - バーに関する仕様

バーはその部分によって性質が異なる。バーを等間隔に5つのボックスに分割して扱っている。

問題1-2: 固いブロック崩し

3回ボールが当たらないとブロックが壊れないようにしなさい。(詳細は次のスライド)

問題1-2: 固いブロック崩し

3回ボールが当たらないとブロックが壊れないようにしなさい。 ブロックが何回ボールに当たった状態なのか、色で区別すること。 なお、ボールがバーの赤い部分に当たった後には、1回当たっただけで壊れるようにすること。

書き換える必要があるのは Block.pde のみ。

問題1-1 のスケッチフォルダを丸ごとコピーし、コピーしたフォルダの名前を blockBreakHard に変更、 中の blockBreakNormal.pde を blockBreakHard.pde に名前を変え、それを Processing で読み込んで始めるとよい。

提出するスケッチフォルダ名: blockBreakHard

問題1-3: オリジナルのブロック崩し

問題1-1, 1-2 を参考に、オリジナルのブロック崩しを作成しなさい。

この課題は、工夫をするほど高い評価となる。

追加機能の例を以下に示す。 なお、これらはよくある例なので、これら以外でオリジナリティのあるものを考えると、より高く評価される可能性がある。

提出するスケッチフォルダ名: blockBreakOriginal

blockBreakOriginal.pde の先頭に、追加機能の概要をコメントとして記載すること。

問題2: マウス操作を使ったオリジナルのゲーム

マウス操作を有効に利用した、オリジナリティのあるゲームを作成しなさい。

提出するスケッチフォルダ名: interactiveGameOriginal

interactiveGameOriginal.pde の先頭に、ゲームの概要と操作方法などをコメントとして記載すること。

問題2: シューティングゲームのサンプル

プログラムは独自に作成するのが望ましいが、 参考として(独創性のない)シューティングゲームのサンプルを示す。(弾の発射は左クリック)

問題2: シューティングゲームのサンプル

ヒント

このようなシューティングゲームでも一気に作るのは難しい。 以下のように、順を追って考えていくとよい。

  1. 自機をユーザの操作で動かせるようにする。
    • 自機が画面外に出ないように制限する。
  2. 自機が弾を発射できるようにする。
  3. 敵の残りライフが表示されるようにする。
  4. 敵が動くようにする。
    • 残り体力によって速さを増すようにしてもよい。
    • サンプルでは授業で扱ったリサージュ図形を用いている。
  5. 敵が弾を発射するようにする。
    • 残り体力によって弾の数を増やしてもよい。

ソース: shootingGameSample

試すには、 shootingGameSample という名前のフォルダを作成し、以下の4つのファイルを置く。