[common] add GameRecorder and GamePlayer

This commit is contained in:
2019-04-30 17:26:54 +03:00
parent fc18e2e0b7
commit ab02460b11
4 changed files with 104 additions and 1 deletions

View File

@@ -1,6 +1,5 @@
package ru.m.tankz.view.common;
import ru.m.tankz.game.GameTracer;
import flash.events.Event;
import haxe.ds.Option;
import haxework.view.frame.FrameSwitcher;
@@ -10,6 +9,7 @@ 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.game.record.GameRecorder;
import ru.m.tankz.network.NetworkManager;
import ru.m.tankz.render.Render;
import ru.m.tankz.sound.SoundManager;
@@ -32,6 +32,7 @@ class GameFrame extends GroupView implements GameListener {
private var game:IGame;
private var runner:GameRunner;
private var recorder:GameRecorder;
private function get_render():Render {
throw "Not implemented";
@@ -54,6 +55,8 @@ class GameFrame extends GroupView implements GameListener {
game.connect(panel);
}
//game.connect(new GameTracer());
recorder = new GameRecorder();
game.connect(recorder);
runner = new GameRunner(game);
runner.start(state);
content.addEventListener(Event.ENTER_FRAME, _redraw);
@@ -76,6 +79,7 @@ class GameFrame extends GroupView implements GameListener {
public function onGameEvent(event:GameEvent):Void {
switch event {
case GameEvent.COMPLETE(state, winner):
L.w("RECORD", Std.string(recorder.data));
result = state;
this.state = switch runner.next() {
case Some(s):