From db78b5cff4d91a2e6a40bfa9f6750c0d75b33153 Mon Sep 17 00:00:00 2001 From: shmyga Date: Thu, 20 Feb 2020 20:53:23 +0300 Subject: [PATCH] [improve] (render) check part pixel under cursor --- package.json | 2 +- src/haxe/ru/m/puzzlez/render/Render.hx | 26 ++++++++++++++++++++------ work.md | 2 +- 3 files changed, 22 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 567490a..19338a5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "puzzlez", - "version": "0.3.3", + "version": "0.3.4", "private": true, "devDependencies": { "dateformat": "^3.0.3", diff --git a/src/haxe/ru/m/puzzlez/render/Render.hx b/src/haxe/ru/m/puzzlez/render/Render.hx index af02bc7..fc2289c 100644 --- a/src/haxe/ru/m/puzzlez/render/Render.hx +++ b/src/haxe/ru/m/puzzlez/render/Render.hx @@ -133,18 +133,32 @@ class Render extends SpriteView implements IRender { } private function onMouseDown(event:MouseEvent):Void { - if (Std.is(event.target, PartView)) { - var part:PartView = event.target; + var point:FlashPoint = new FlashPoint(event.stageX, event.stageY); + var objects = tableView.getObjectsUnderPoint(point); + objects.reverse(); + var pointPart:PartView = null; + for (object in objects) { + if (Std.is(object, PartView)) { + var part:PartView = cast object; + var partPoint = part.globalToLocal(point); + var color = part.image.shadedImage.getPixel(Std.int(partPoint.x), Std.int(partPoint.y)); + if (color > 0) { + pointPart = part; + break; + } + } + } + if (pointPart != null) { if (event.ctrlKey) { - save(part); + save(pointPart); return; } - if (part.completed) { + if (pointPart.completed) { return; } - activePart = part; + activePart = pointPart; tableView.setChildIndex(activePart, tableView.numChildren - 1); - activePoint = tableView.globalToLocal(new FlashPoint(event.stageX, event.stageY)); + activePoint = tableView.globalToLocal(point); tableView.stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove); tableView.stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUp); signal.emit(ACTION(PART_TAKE(activePart.id))); diff --git a/work.md b/work.md index 4281e7b..0efa0f8 100644 --- a/work.md +++ b/work.md @@ -1,4 +1,4 @@ * background settings * parts groups * navigation -* version compare bug +* render: table scale/move