[[目次へもどる>PuyoPuyo]] * Scene [#c5d36715] #contents とりあえず連鎖の管理はもうできるようになった. 今回はアニメーションにも少し突っ込んで行きたいと思っているので, この先に進むにはグラフィックを導入しないことにはなじまらん. そこでまずはゲームの場面を管理するシーンを作る. ゲームってのはいくつかの場面で構成されている. 例えばタイトル画面,ゲームオーバー画面,キャラ選択画面,ステージ画面などなど. それらひとつひとつをシーンとして扱う. ** SceneBase [#p852e4d1] 最初にベースとなるシーンSceneBaseを定義した. #sh(ruby){{ 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 [#beb8eaac] 次に,今開発を進めたい実際のプレイシーンScenePuyoPuyoを定義する. #sh(ruby){{ 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は多人数対戦を想定してプレイヤーの配列にしておいた.