[client] fix control

This commit is contained in:
2019-06-06 17:38:37 +03:00
parent abd1b834d7
commit dbf30decae
15 changed files with 67 additions and 59 deletions

View File

@@ -15,7 +15,7 @@ import ru.m.tankz.proto.pack.Request;
import ru.m.tankz.proto.pack.Response;
import ru.m.tankz.sound.SoundManager;
import ru.m.tankz.storage.GameStorage;
import ru.m.tankz.storage.MultiplayerStorage;
import ru.m.tankz.storage.NetworkStorage;
import ru.m.tankz.storage.RecordStorage;
import ru.m.tankz.storage.SettingsStorage;
@@ -25,7 +25,7 @@ class Init {
@:provide static var levelBundle:ILevelBundle;
@:provide static var configBundle:IConfigBundle;
@:provide static var settingsStorage:SettingsStorage;
@:provide static var multiplayerStorage:MultiplayerStorage;
@:provide static var multiplayerStorage:NetworkStorage;
@:provide static var gameStorage:GameStorage;
@:provide static var recordStorage:RecordStorage;
@:provide static var soundManager:SoundManager;
@@ -51,7 +51,7 @@ class Init {
levelBundle = new LevelBundle();
configBundle = new ConfigBundle();
settingsStorage = new SettingsStorage();
multiplayerStorage = new MultiplayerStorage();
multiplayerStorage = new NetworkStorage();
gameStorage = new GameStorage();
recordStorage = new RecordStorage();
soundManager = new SoundManager();

View File

@@ -18,7 +18,7 @@ class ActionConfig {
}
public function asKeyBinding():KeyBinding {
var result = new Map<Int, TankAction>();
var result = new KeyBinding();
for (item in data) {
result[item.key] = item.action;
}

View File

@@ -3,7 +3,6 @@ package ru.m.tankz.control;
import flash.events.FocusEvent;
import flash.events.KeyboardEvent;
import flash.Lib;
import flash.ui.Keyboard;
import haxe.Timer;
import ru.m.tankz.control.ActionConfig;
import ru.m.tankz.control.Control;
@@ -21,10 +20,19 @@ class HumanControl extends Control {
public function new(playerId:PlayerId, controlIndex:Int) {
super(playerId);
this.keyBinding = storage.getActionConfig(controlIndex).asKeyBinding();
moveQueue = new Array<Int>();
moveQueue = [];
}
override public function start():Void {
super.start();
Lib.current.stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
Lib.current.stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUp);
//Lib.current.stage.addEventListener(FocusEvent.FOCUS_OUT, onFocusOut);
}
override public function stop():Void {
super.stop();
Lib.current.stage.removeEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
Lib.current.stage.removeEventListener(KeyboardEvent.KEY_UP, onKeyUp);
}
private function onKeyDown(event:KeyboardEvent):Void {

View File

@@ -1,5 +1,8 @@
package ru.m.tankz.control;
package ru.m.tankz.local;
import ru.m.tankz.control.BaseControlFactory;
import ru.m.tankz.control.Control;
import ru.m.tankz.control.HumanControl;
import ru.m.tankz.Type;
class LocalControlFactory extends BaseControlFactory {

View File

@@ -1,7 +1,9 @@
package ru.m.tankz.game;
package ru.m.tankz.local;
import ru.m.tankz.control.LocalControlFactory;
import ru.m.tankz.local.LocalControlFactory;
import ru.m.tankz.game.GameEvent;
import ru.m.tankz.game.GameRunner;
import ru.m.tankz.game.GameState;
import ru.m.tankz.game.record.GameRecorder;
import ru.m.tankz.storage.RecordStorage;

View File

@@ -1,5 +1,6 @@
package ru.m.tankz.control;
package ru.m.tankz.network;
import ru.m.tankz.control.HumanControl;
import ru.m.tankz.network.NetworkManager;
import ru.m.tankz.control.Control;

View File

@@ -1,5 +1,7 @@
package ru.m.tankz.control;
package ru.m.tankz.network;
import ru.m.tankz.control.BaseControlFactory;
import ru.m.tankz.control.Control;
import ru.m.tankz.Type;
class NetworkControlFactory extends BaseControlFactory {
@@ -7,4 +9,8 @@ class NetworkControlFactory extends BaseControlFactory {
override private function buildHuman(id:PlayerId, index:Int):Control {
return new NetworkControl(id, index);
}
override private function buildBot(id:PlayerId, type:String):Control {
return null;
}
}

View File

@@ -1,10 +1,10 @@
package ru.m.tankz.game;
package ru.m.tankz.network;
import haxe.Unserializer;
import ru.m.tankz.control.NetworkControlFactory;
import ru.m.tankz.game.Game;
import ru.m.tankz.game.GameEvent;
import ru.m.tankz.game.GameState;
import ru.m.tankz.network.NetworkControlFactory;
import ru.m.tankz.network.NetworkManager;
import ru.m.tankz.proto.pack.GameEventResponse;
import ru.m.tankz.proto.room.RoomSlotProto;

View File

@@ -21,7 +21,7 @@ import ru.m.tankz.proto.room.RoomListRequest;
import ru.m.tankz.proto.room.RoomProto;
import ru.m.tankz.proto.room.RoomRequest;
import ru.m.tankz.proto.room.StartRequest;
import ru.m.tankz.storage.MultiplayerStorage;
import ru.m.tankz.storage.NetworkStorage;
typedef ClientConnection = IConnection<Request, Response>;
@@ -46,7 +46,7 @@ class NetworkManager {
public var gameEventSignal:Signal<GameEventResponse>;
@:provide private var connection:ClientConnection;
@:provide private var storage:MultiplayerStorage;
@:provide private var storage:NetworkStorage;
private var reconnectTimer:Timer;
private var reconnectDelay:Int;

View File

@@ -2,12 +2,12 @@ package ru.m.tankz.storage;
import haxework.storage.SharedObjectStorage;
class MultiplayerStorage extends SharedObjectStorage {
class NetworkStorage extends SharedObjectStorage {
public var user(get, set):User;
public function new() {
super("multiplayer");
super("network");
}
private inline function get_user():User {

View File

@@ -9,7 +9,7 @@ import ru.m.tankz.bundle.ILevelBundle;
import ru.m.tankz.config.Config;
import ru.m.tankz.game.GameState;
import ru.m.tankz.game.IGame;
import ru.m.tankz.game.LocalGame;
import ru.m.tankz.local.LocalGame;
import ru.m.tankz.storage.GameStorage;
import ru.m.tankz.Type;
import ru.m.tankz.view.popup.LevelPopup;

View File

@@ -6,7 +6,7 @@ import haxework.view.list.VListView;
import haxework.view.TextView;
import haxework.view.VGroupView;
import ru.m.tankz.game.IGame;
import ru.m.tankz.game.NetworkGame;
import ru.m.tankz.network.NetworkGame;
import ru.m.tankz.network.NetworkManager;
import ru.m.tankz.proto.room.RoomProto;
import ru.m.tankz.proto.room.RoomSlotProto;