目次へもどる

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 (4794d)