第8回 りんごひろいゲームを作る1[関数とイベントハンドラ](6月9日)

本日の課題

  • 関数とイベントハンドラを使って簡単なゲームを作成する
  • サンプル:
  • サンプルソースのダウンロード:080609.fla

関数

  • 同じ処理を何度も使う場合にその処理を関数にまとめる
  • 同じプログラムを何度も記述する必要がなくなりメンテナンスがしやすくなる
  • 例:
    // ランダムな数値を得る関数を定義
    function get_random(num1, num2) {
      r_length = num2 - num1 + 1;
      return Math.floor(Math.random() * r_length) + num1;
    }
    // 関数を呼び出す
    this._x = get_random(0, 550);

イベントハンドラ

  • インスタンスでイベントを処理する場合にはイベントハンドラを定義する
  • 処理は関数にまとめておく
  • 例:
    // インスタンスを一定スピードで動かす関数を定義
    function move_mc() {
      this._y += 20;
    }
    // イベントハンドラに関数を指定
    this.onEnterFrame = move_mc;

条件分岐

  • 常に同じ処理を行うのではなく条件によって処理を変えたい場合に使う
  • 基本構文1:条件式がtrue(真)の場合のみ実行式が実行される
    if (条件式){
      実行式;
    }
  • 例:
    if (this._y > 400){
      this._y = 0;
    }
  • 基本構文2:条件式がtrue(真)の場合実行式1が、false(偽)の場合実行式2が実行される
    if (条件式){
      実行式1;
    } else {
      実行式2;
    }
  • 例:
    if (this._y > 400){
      this._y = 0;
    } else {
      this._y += 20;
    }

キーボードを使ったインターフェースその1

  • キーが押されているかチェックして押されていれば一定の処理を行う
  • カーソルキーでオブジェクトを移動させたい場合などに有効
  • 処理は関数にまとめておく
  • 例:
    // 左カーソルキーが押されていたら
    // インスタンスのx座標を-10ピクセル動かす
    if (Key.isDown(Key.LEFT)) {
      this._x += -10;
    }

課題評価ポイント

  • 関数の記述が正しく行えているか?(20点)
  • イベントハンドラの指定が正しくできているか?(20点)
  • 条件分岐が正しく使えているか?(20点)
  • キーボードを使ったインスタンスの移動が正しくできているか?(20点)
  • ゲームとして的確に動作しているか?(20点)

ファイル名に全角文字や記号を使わないこと

提出期限は授業日の週の水曜日の午後9時