From a9b591a7ca73525748a007b68d7b6722350aff9a Mon Sep 17 00:00:00 2001 From: shmyga Date: Mon, 25 Mar 2019 16:01:37 +0300 Subject: [PATCH] [editor] add ColorView --- gulpfile.js | 14 +++- src/common/haxe/ru/m/tankz/bot/BotHelper.hx | 2 +- .../haxe/ru/m/tankz/bot/HardBotControl.hx | 8 +- .../haxe/ru/m/tankz/editor/ColorView.hx | 36 +++++++++ src/editor/haxe/ru/m/tankz/editor/Editor.hx | 6 +- .../haxe/ru/m/tankz/editor/EditorView.yaml | 2 +- .../ru/m/tankz/editor/frame/LevelFrame.yaml | 24 +++--- .../haxe/ru/m/tankz/editor/frame/TankFrame.hx | 24 +++--- .../ru/m/tankz/editor/frame/TankFrame.yaml | 72 ++++++++---------- src/editor/resources/image/colors.png | Bin 0 -> 29560 bytes 10 files changed, 115 insertions(+), 73 deletions(-) create mode 100644 src/editor/haxe/ru/m/tankz/editor/ColorView.hx create mode 100644 src/editor/resources/image/colors.png diff --git a/gulpfile.js b/gulpfile.js index b04e493..fd855e1 100755 --- a/gulpfile.js +++ b/gulpfile.js @@ -1,4 +1,3 @@ -"use strict"; const gulp = require('gulp'); const gulpClean = require('gulp-clean'); const Config = require('./config.json'); @@ -69,7 +68,9 @@ const client = new Project( name: 'client', sources: ['src/client/haxe'], main: 'ru.m.tankz.Client', - assets: ['src/client/resources'], + assets: [ + 'src/client/resources', + ], meta: { width: 1024, height: 768, @@ -88,12 +89,17 @@ const client = new Project( */ const editor = new Project( Project.BuildSystem.OPENFL, - Project.Platform.FLASH, + [ + Project.Platform.FLASH, + ], config.branch({ name: 'editor', sources: ['src/client/haxe', 'src/editor/haxe'], main: 'ru.m.tankz.editor.Editor', - assets: ['src/client/resources'], + assets: [ + 'src/client/resources', + 'src/editor/resources', + ], meta: { filename: 'editor', width: 1024, diff --git a/src/common/haxe/ru/m/tankz/bot/BotHelper.hx b/src/common/haxe/ru/m/tankz/bot/BotHelper.hx index 5b319db..63d1b43 100644 --- a/src/common/haxe/ru/m/tankz/bot/BotHelper.hx +++ b/src/common/haxe/ru/m/tankz/bot/BotHelper.hx @@ -4,7 +4,7 @@ import ru.m.geom.Direction; import ru.m.tankz.core.Entity; import ru.m.tankz.core.EntityType; import ru.m.tankz.core.Eagle; -import ru.m.tankz.control.Control.ControlHandler; +import ru.m.tankz.control.Control; import ru.m.tankz.Type; class BotHelper { diff --git a/src/common/haxe/ru/m/tankz/bot/HardBotControl.hx b/src/common/haxe/ru/m/tankz/bot/HardBotControl.hx index 17ea6d8..28fc66b 100644 --- a/src/common/haxe/ru/m/tankz/bot/HardBotControl.hx +++ b/src/common/haxe/ru/m/tankz/bot/HardBotControl.hx @@ -1,5 +1,6 @@ package ru.m.tankz.bot; +import ru.m.tankz.core.Eagle; import haxe.Timer; import ru.m.tankz.core.EntityType; import ru.m.tankz.core.Tank; @@ -81,6 +82,11 @@ class HardBotControl extends BotControl { } private function calcTurn():Void { - turn(BotHelper.randomDirection()); + var eagle:Eagle = BotHelper.findEagle(playerId.team, handler); + if (eagle != null && Math.random() > 0.5) { + turn(BotHelper.getDirectionTo(tank, eagle)); + } else { + turn(BotHelper.randomDirection()); + } } } diff --git a/src/editor/haxe/ru/m/tankz/editor/ColorView.hx b/src/editor/haxe/ru/m/tankz/editor/ColorView.hx new file mode 100644 index 0000000..fcd4f73 --- /dev/null +++ b/src/editor/haxe/ru/m/tankz/editor/ColorView.hx @@ -0,0 +1,36 @@ +package ru.m.tankz.editor; + +import flash.events.MouseEvent; +import haxework.color.Color; +import haxework.gui.ImageView; +import haxework.signal.Signal; +import openfl.Assets; + +class ColorView extends ImageView { + + public var onSelect(default, null):Signal = new Signal(); + + public function new() { + super(Assets.getBitmapData("resources/image/colors.png")); + content.cacheAsBitmap = true; + content.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown); + } + + private function onMouseDown(event:MouseEvent):Void { + content.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove); + content.stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUp); + onMouseMove(event); + } + + private function onMouseMove(event:MouseEvent):Void { + if (event.localX >= width || event.localY >= height) { + return; + } + onSelect.emit(image.getPixel32(Std.int(event.localX), Std.int(event.localY))); + } + + private function onMouseUp(event:MouseEvent):Void { + content.removeEventListener(MouseEvent.MOUSE_MOVE, onMouseMove); + content.stage.removeEventListener(MouseEvent.MOUSE_UP, onMouseUp); + } +} diff --git a/src/editor/haxe/ru/m/tankz/editor/Editor.hx b/src/editor/haxe/ru/m/tankz/editor/Editor.hx index a894735..7d16075 100644 --- a/src/editor/haxe/ru/m/tankz/editor/Editor.hx +++ b/src/editor/haxe/ru/m/tankz/editor/Editor.hx @@ -8,7 +8,6 @@ import ru.m.tankz.bundle.LevelBundle; import ru.m.tankz.bundle.ILevelBundle; import ru.m.tankz.bundle.ConfigBundle; import ru.m.tankz.bundle.IConfigBundle; -import flash.text.Font; import haxework.gui.ButtonView; import haxework.gui.frame.FrameSwitcher; import haxework.gui.VGroupView; @@ -58,10 +57,7 @@ class Editor { public function new() { resources = new Resources(); - - var font:Font = Font.enumerateFonts()[0]; - resources.text.put('font', 'Bookman Old Style'); - resources.text.put('version', 'v${Const.VERSION} b${Const.BUILD}'); + resources.text.put('version', '${Const.VERSION}'); Style.register(); diff --git a/src/editor/haxe/ru/m/tankz/editor/EditorView.yaml b/src/editor/haxe/ru/m/tankz/editor/EditorView.yaml index 92d286f..493ac85 100644 --- a/src/editor/haxe/ru/m/tankz/editor/EditorView.yaml +++ b/src/editor/haxe/ru/m/tankz/editor/EditorView.yaml @@ -35,7 +35,7 @@ views: - $type: haxework.gui.LabelView skinId: text geometry.position: absolute - geometry.vAlign: bottom + geometry.vAlign: top geometry.hAlign: right geometry.margin: 10 text: $r:text:version diff --git a/src/editor/haxe/ru/m/tankz/editor/frame/LevelFrame.yaml b/src/editor/haxe/ru/m/tankz/editor/frame/LevelFrame.yaml index ce2dcdf..807377c 100644 --- a/src/editor/haxe/ru/m/tankz/editor/frame/LevelFrame.yaml +++ b/src/editor/haxe/ru/m/tankz/editor/frame/LevelFrame.yaml @@ -17,18 +17,6 @@ views: skinId: button.simple text: DotA +onPress: $this:onPress - - $type: haxework.gui.HGroupView - views: - - id: openButton - $type: haxework.gui.ButtonView - skinId: button.simple - text: Open - +onPress: $this:onPress - - id: saveButton - $type: haxework.gui.ButtonView - skinId: button.simple - text: Save - +onPress: $this:onPress - id: fileNameLabel $type: haxework.gui.LabelView # map @@ -52,3 +40,15 @@ views: hAlign: center margin: 5 factory: $code:ru.m.tankz.editor.level.BrickView.factory + - $type: haxework.gui.HGroupView + views: + - id: openButton + $type: haxework.gui.ButtonView + skinId: button.simple + text: Open + +onPress: $this:onPress + - id: saveButton + $type: haxework.gui.ButtonView + skinId: button.simple + text: Save + +onPress: $this:onPress diff --git a/src/editor/haxe/ru/m/tankz/editor/frame/TankFrame.hx b/src/editor/haxe/ru/m/tankz/editor/frame/TankFrame.hx index 7c62030..4c10bdb 100644 --- a/src/editor/haxe/ru/m/tankz/editor/frame/TankFrame.hx +++ b/src/editor/haxe/ru/m/tankz/editor/frame/TankFrame.hx @@ -1,22 +1,28 @@ package ru.m.tankz.editor.frame; import ru.m.tankz.editor.tank.TankView; +import haxework.gui.IGroupView; +import haxework.color.Color; import haxework.gui.InputView; -import haxework.gui.HGroupView; +import haxework.gui.VGroupView; -@:template class TankFrame extends HGroupView { +@:template class TankFrame extends VGroupView { public static inline var ID = 'tank'; - @:view var tank(default, null):TankView; - @:view var colorR(default, null):InputView; - @:view var colorG(default, null):InputView; - @:view var colorB(default, null):InputView; + @:view var tanks(default, null):IGroupView; + @:view("color") var colorLabel(default, null):InputView; + private var color(default, set):Color; public function onShow():Void { - onChange(); + color = 0x00ff00; } - public function onChange(?_):Void { - tank.color = '#${colorR.text}${colorG.text}${colorB.text}'; + private function set_color(value:Color):Color { + color = value; + colorLabel.text = value.toString(); + for (view in tanks.views) { + cast(view, TankView).color = color; + } + return color; } } diff --git a/src/editor/haxe/ru/m/tankz/editor/frame/TankFrame.yaml b/src/editor/haxe/ru/m/tankz/editor/frame/TankFrame.yaml index 565ec2e..7e3f647 100644 --- a/src/editor/haxe/ru/m/tankz/editor/frame/TankFrame.yaml +++ b/src/editor/haxe/ru/m/tankz/editor/frame/TankFrame.yaml @@ -1,45 +1,37 @@ --- -$type: haxework.gui.HGroupView geometry.size.stretch: true +geometry.padding: 10 layout.hAlign: center +layout.margin: 10 views: - - $type: ru.m.tankz.editor.tank.TankView - geometry.margin.right: 20 - image: "$asset:image:resources/image/tank/bc-0.png" - color: 0xff4422 - - $type: ru.m.tankz.editor.tank.TankView - geometry.margin.right: 20 - image: "$asset:image:resources/image/tank/bc-0.png" - color: 0xf055a0 - - $type: ru.m.tankz.editor.tank.TankView - geometry.margin.right: 20 - image: "$asset:image:resources/image/tank/bc-0.png" - color: 0x2244ff - - id: tank - $type: ru.m.tankz.editor.tank.TankView - geometry.margin.right: 20 - image: "$asset:image:resources/image/tank/bc-0.png" - - id: colorR + - id: tanks + $type: haxework.gui.GroupView + layout: + $type: haxework.gui.layout.TailLayout + rowSize: 4 + margin: 20 + views: + - $type: ru.m.tankz.editor.tank.TankView + image: "$asset:image:resources/image/tank/pa-0.png" + - $type: ru.m.tankz.editor.tank.TankView + image: "$asset:image:resources/image/tank/pb-0.png" + - $type: ru.m.tankz.editor.tank.TankView + image: "$asset:image:resources/image/tank/pc-0.png" + - $type: ru.m.tankz.editor.tank.TankView + image: "$asset:image:resources/image/tank/pd-0.png" + - $type: ru.m.tankz.editor.tank.TankView + image: "$asset:image:resources/image/tank/ba-0.png" + - $type: ru.m.tankz.editor.tank.TankView + image: "$asset:image:resources/image/tank/bb-0.png" + - $type: ru.m.tankz.editor.tank.TankView + image: "$asset:image:resources/image/tank/bc-0.png" + - $type: ru.m.tankz.editor.tank.TankView + image: "$asset:image:resources/image/tank/bd-0.png" + - id: color $type: haxework.gui.InputView - +onChange: $this:onChange - geometry.size.fixed: [30, 20] - text: "a0" - skin: - - $type: haxework.gui.skin.ColorSkin - color: 0xffffff - - id: colorG - $type: haxework.gui.InputView - +onChange: $this:onChange - geometry.size.fixed: [30, 20] - text: "55" - skin: - - $type: haxework.gui.skin.ColorSkin - color: 0xffffff - - id: colorB - $type: haxework.gui.InputView - +onChange: $this:onChange - geometry.size.fixed: [30, 20] - text: "f0" - skin: - - $type: haxework.gui.skin.ColorSkin - color: 0xffffff + skinId: text.box + +onChange: $code:function(value) color = value + geometry.size.width: 120 + layout.hAlign: right + - $type: ru.m.tankz.editor.ColorView + +onSelect: $code:function(value) color = value diff --git a/src/editor/resources/image/colors.png b/src/editor/resources/image/colors.png new file mode 100644 index 0000000000000000000000000000000000000000..396dd9ba404b257b985f7e7073a348c2b576498c GIT binary patch literal 29560 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 z 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 literal 0 HcmV?d00001