[common] add GameRunner
This commit is contained in:
@@ -1,13 +1,15 @@
|
||||
package ru.m.tankz.view.common;
|
||||
|
||||
import ru.m.tankz.game.GameTracer;
|
||||
import flash.events.Event;
|
||||
import haxe.ds.Option;
|
||||
import haxe.Timer;
|
||||
import haxework.view.frame.FrameSwitcher;
|
||||
import haxework.view.GroupView;
|
||||
import ru.m.tankz.game.Game;
|
||||
import ru.m.tankz.game.GameEvent;
|
||||
import ru.m.tankz.game.GameRunner;
|
||||
import ru.m.tankz.game.GameState;
|
||||
import ru.m.tankz.game.IGame;
|
||||
import ru.m.tankz.network.NetworkManager;
|
||||
import ru.m.tankz.render.Render;
|
||||
import ru.m.tankz.sound.SoundManager;
|
||||
@@ -28,8 +30,8 @@ class GameFrame extends GroupView implements GameListener {
|
||||
@:provide var switcher:FrameSwitcher;
|
||||
@:provide var storage:GameStorage;
|
||||
|
||||
private var game:Game;
|
||||
private var timer:Timer;
|
||||
private var game:IGame;
|
||||
private var runner:GameRunner;
|
||||
|
||||
private function get_render():Render {
|
||||
throw "Not implemented";
|
||||
@@ -51,19 +53,19 @@ class GameFrame extends GroupView implements GameListener {
|
||||
if (panel != null) {
|
||||
game.connect(panel);
|
||||
}
|
||||
game.start(state);
|
||||
timer = new Timer(10);
|
||||
timer.run = updateEngine;
|
||||
//game.connect(new GameTracer());
|
||||
runner = new GameRunner(game);
|
||||
runner.start(state);
|
||||
content.addEventListener(Event.ENTER_FRAME, _redraw);
|
||||
render.draw(game.engine);
|
||||
}
|
||||
|
||||
private function stop():Void {
|
||||
if (timer != null) {
|
||||
timer.stop();
|
||||
timer = null;
|
||||
}
|
||||
content.removeEventListener(Event.ENTER_FRAME, _redraw);
|
||||
if (runner != null) {
|
||||
runner.dispose();
|
||||
runner = null;
|
||||
}
|
||||
if (game != null) {
|
||||
game.dispose();
|
||||
game = null;
|
||||
@@ -75,7 +77,7 @@ class GameFrame extends GroupView implements GameListener {
|
||||
switch event {
|
||||
case GameEvent.COMPLETE(state, winner):
|
||||
result = state;
|
||||
this.state = switch game.next() {
|
||||
this.state = switch runner.next() {
|
||||
case Some(s):
|
||||
// ToDo:
|
||||
var progress = storage.get(game.type);
|
||||
@@ -94,10 +96,6 @@ class GameFrame extends GroupView implements GameListener {
|
||||
stop();
|
||||
}
|
||||
|
||||
private function updateEngine():Void {
|
||||
game.engine.update();
|
||||
}
|
||||
|
||||
private function _redraw(_):Void {
|
||||
render.draw(game.engine);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user