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は多人数対戦を想定してプレイヤーの配列にしておいた. |