[client] update layout

This commit is contained in:
2018-07-20 17:09:48 +03:00
parent d0c796aab2
commit ac1df9a9a4
6 changed files with 87 additions and 20 deletions

View File

@@ -2,11 +2,14 @@
$type: haxework.gui.VGroupView
pWidth: 100
pHeight: 100
skin:
$type: haxework.gui.skin.ColorSkin
color: "0x95937D"
views:
- id: switcher
$type: haxework.gui.frame.FrameSwitcher
pWidth: 100
pHeight: 100
width: 960
height: 720
skin:
$type: haxework.gui.skin.BitmapSkin
image: "@asset:image:resources/image/ui/background.png"
@@ -22,12 +25,3 @@ views:
$type: ru.m.tankz.frame.NetworkFrame
- id: settings
$type: ru.m.tankz.frame.SettingsFrame
- $type: haxework.gui.LabelView
$style: label
inLayout: false
contentSize: true
vAlign: BOTTOM
hAlign: RIGHT
rightMargin: 10
bottomMargin: 10
text: "@res:text:version"

View File

@@ -1,5 +1,9 @@
package ru.m.tankz.frame;
import ru.m.tankz.preset.DotaGame;
import ru.m.tankz.preset.ClassicGame;
import ru.m.tankz.Type.GameType;
import haxework.gui.View;
import ru.m.tankz.network.NetworkManager;
import ru.m.tankz.network.NetworkGame;
import flash.events.Event;
@@ -26,6 +30,14 @@ class GameFrame extends VGroupView {
@:view var state(default, null):LabelView;
@:view var render(default, null):Render;
@:view var topPanel(default, null):View;
@:view var rightPanel(default, null):View;
@:view var botstate(default, null):LabelView;
@:view var player1state(default, null):LabelView;
@:view var player2state(default, null):LabelView;
@:provide var network:NetworkManager;
private var game:Game;
@@ -43,6 +55,14 @@ class GameFrame extends VGroupView {
}
private function start(save:GameSave):Void {
switch (save.state.type) {
case ClassicGame.TYPE:
topPanel.visible = topPanel.inLayout = false;
rightPanel.visible = rightPanel.inLayout = true;
case DotaGame.TYPE:
topPanel.visible = topPanel.inLayout = true;
rightPanel.visible = rightPanel.inLayout = false;
}
switch (save.server) {
case GameServer.LOCAL:
game = new Game(save.state.type);
@@ -98,6 +118,15 @@ class GameFrame extends VGroupView {
private function onGameStateChange(s:GameState):GameState {
state.text = stateString(game);
if (game.type == ClassicGame.TYPE) {
botstate.text = 'Bot: ${game.teams[ClassicGame.BOT].life} life';
player1state.text = 'Player1: ${game.teams[ClassicGame.HUMAN].players[0].state.life} life';
if (game.teams[ClassicGame.HUMAN].players[1] != null) {
player2state.text = 'Player2: ${game.teams[ClassicGame.HUMAN].players[1].state.life} life';
} else {
player2state.text = "";
}
}
return s;
}

View File

@@ -2,11 +2,44 @@
pWidth: 100
pHeight: 100
views:
- id: topPanel
$type: haxework.gui.HGroupView
pWidth: 100
height: 20
visible: false
inLayout: false
views:
- id: state
$type: haxework.gui.LabelView
$style: label
pWidth: 100
height: 20
- $type: haxework.gui.HGroupView
pWidth: 100
pHeight: 100
views:
- id: render
$type: ru.m.tankz.render.Render
contentSize: true
- id: rightPanel
$type: haxework.gui.VGroupView
width: 200
pHeight: 100
visible: false
inLayout: false
views:
- id: botstate
$type: haxework.gui.LabelView
$style: label
pWidth: 100
height: 20
- id: player1state
$type: haxework.gui.LabelView
$style: label
pWidth: 100
height: 20
- id: player2state
$type: haxework.gui.LabelView
$style: label
pWidth: 100
height: 20

View File

@@ -70,7 +70,15 @@ views:
$type: haxework.gui.ButtonView
text: Network
$style: button
# settings
- $type: haxework.gui.LabelView
$style: label
inLayout: false
contentSize: true
vAlign: BOTTOM
hAlign: RIGHT
rightMargin: 10
bottomMargin: 10
text: "@res:text:version"
- id: settings
$type: haxework.gui.ButtonView
inLayout: false

View File

@@ -1,5 +1,5 @@
---
width: 440
pWidth: 100
height: 44
margins: 5
views:

View File

@@ -179,7 +179,10 @@ class Render extends SpriteView {
animate.y = point.y - animate.height / 2;
upperLayer.addChild(animate);
animate.play().then(function(animate:Animate):Void {
// ToDo: clean animates on reset
if (upperLayer.contains(animate)) {
upperLayer.removeChild(animate);
}
animate.dispose();
});
}