目次へもどる

Scene

とりあえず連鎖の管理はもうできるようになった. 今回はアニメーションにも少し突っ込んで行きたいと思っているので, この先に進むにはグラフィックを導入しないことにはなじまらん.

そこでまずはゲームの場面を管理するシーンを作る.

ゲームってのはいくつかの場面で構成されている. 例えばタイトル画面,ゲームオーバー画面,キャラ選択画面,ステージ画面などなど. それらひとつひとつをシーンとして扱う.

SceneBase?

最初にベースとなるシーンSceneBase?を定義した.

class SceneBase
  def initialize
  end

  def start
  end

  def main
    GameMain.game.screen.clear
    Debug.update
    update
  end

  def update
    
  end

  def terminate
  end
end 

何もないですね. なぜならこのクラスはいわばインターフェースのような役割を果たしていて,実際には子クラスによって具体的なシーンが構成される. 重要な部分は「main」メソッドと「update」メソッド.「main」は毎フレーム呼び出され,画面の更新を行う.GameMain?は後ででてくる. 「update」は子クラスで定義され,シーン自体の更新を行う.

ScenePuyoPuyo?

次に,今開発を進めたい実際のプレイシーンScenePuyoPuyo?を定義する.

class ScenePuyoPuyo < SceneBase
  def start
    @players = []
    @players.push(FieldController.new(16,16))
    # test
    @players.first.instance_eval{ @field.set_table(<<EOF)
......
......
......
......
......
......
..yb.r
.....b
...rgb
...yrg
..yrgb
.ryrgb
EOF
    }
  end

  def main
    super
  end

  def update
    super
    @players.each do |controller|
      controller.update
    end
  end
end

前処理としてもろもろの初期化を行っている.@playersは多人数対戦を想定してプレイヤーの配列にしておいた.


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-08-30 (金) 21:59:33 (3892d)