From 8313cda7bcf935e1a906be1f5f251303cc30177f Mon Sep 17 00:00:00 2001 From: MiChinao Date: Wed, 26 Aug 2020 23:46:12 +0200 Subject: [PATCH] Animate selection rectangle --- resources-windows/HyperLap2D-setup-icon.bmp | Bin 0 -> 9296 bytes .../rednblack/editor/view/stage/Sandbox.java | 7 ++----- .../editor/view/stage/tools/SelectionTool.java | 11 +++-------- .../view/ui/widget/actors/basic/PixelRect.java | 13 +++++-------- 4 files changed, 10 insertions(+), 21 deletions(-) create mode 100644 resources-windows/HyperLap2D-setup-icon.bmp diff --git a/resources-windows/HyperLap2D-setup-icon.bmp b/resources-windows/HyperLap2D-setup-icon.bmp new file mode 100644 index 0000000000000000000000000000000000000000..722560a47ae6d6fad2b3a0a33d11e4055b0a1f1b GIT binary patch literal 9296 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 Nf1>1#mo7be{1g7uozVaQ literal 0 HcmV?d00001 diff --git a/src/main/java/games/rednblack/editor/view/stage/Sandbox.java b/src/main/java/games/rednblack/editor/view/stage/Sandbox.java index 0849db9b..0f313917 100644 --- a/src/main/java/games/rednblack/editor/view/stage/Sandbox.java +++ b/src/main/java/games/rednblack/editor/view/stage/Sandbox.java @@ -314,11 +314,8 @@ public class Sandbox { return sceneControl.getCurrentScene(); } - public void prepareSelectionRectangle(float x, float y, boolean setOpacity) { - // space is panning, so if we are not, then prepare the selection rectangle - if (setOpacity) { - selectionRec.setOpacity(0.6f); - } + public void prepareSelectionRectangle(float x, float y) { + selectionRec.setOpacity(0.8f); selectionRec.setWidth(0); selectionRec.setHeight(0); selectionRec.setX(x); diff --git a/src/main/java/games/rednblack/editor/view/stage/tools/SelectionTool.java b/src/main/java/games/rednblack/editor/view/stage/tools/SelectionTool.java index f5d58cd6..8b6af439 100644 --- a/src/main/java/games/rednblack/editor/view/stage/tools/SelectionTool.java +++ b/src/main/java/games/rednblack/editor/view/stage/tools/SelectionTool.java @@ -23,6 +23,8 @@ import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Input; import com.badlogic.gdx.graphics.OrthographicCamera; import com.badlogic.gdx.math.*; +import com.badlogic.gdx.scenes.scene2d.Action; +import com.badlogic.gdx.scenes.scene2d.actions.Actions; import com.badlogic.gdx.utils.Array; import com.badlogic.gdx.utils.viewport.Viewport; import com.kotcrab.vis.ui.util.OsUtils; @@ -105,18 +107,11 @@ public class SelectionTool extends SimpleTool { public boolean stageMouseDown(float x, float y) { sandbox = Sandbox.getInstance(); - boolean setOpacity = false; - - //TODO: Anyone can explain what was the purpose of this? - if (!Gdx.input.isKeyPressed(Input.Keys.SPACE)) { - setOpacity = true; - } - // transform stage coordinates to screen coordinates Vector2 screenCoords = Sandbox.getInstance().worldToScreen(x, y); // preparing selection tool rectangle to follow mouse - sandbox.prepareSelectionRectangle(screenCoords.x, screenCoords.y, setOpacity); + sandbox.prepareSelectionRectangle(screenCoords.x, screenCoords.y); return true; } diff --git a/src/main/java/games/rednblack/editor/view/ui/widget/actors/basic/PixelRect.java b/src/main/java/games/rednblack/editor/view/ui/widget/actors/basic/PixelRect.java index 51f90a42..539e8e86 100644 --- a/src/main/java/games/rednblack/editor/view/ui/widget/actors/basic/PixelRect.java +++ b/src/main/java/games/rednblack/editor/view/ui/widget/actors/basic/PixelRect.java @@ -19,19 +19,19 @@ package games.rednblack.editor.view.ui.widget.actors.basic; import com.badlogic.gdx.graphics.Color; +import com.badlogic.gdx.math.Interpolation; import com.badlogic.gdx.math.Rectangle; import com.badlogic.gdx.scenes.scene2d.Group; +import com.badlogic.gdx.scenes.scene2d.actions.Actions; import com.badlogic.gdx.scenes.scene2d.ui.Image; import games.rednblack.editor.HyperLap2DFacade; import games.rednblack.editor.proxy.EditorTextureManager; -import games.rednblack.editor.proxy.ProjectManager; public class PixelRect extends Group { private final HyperLap2DFacade facade; - private final ProjectManager projectManager; - private PixelLine[] lines = new PixelLine[4]; - private Image fill; + private final PixelLine[] lines = new PixelLine[4]; + private final Image fill; public PixelRect() { this(0, 0); @@ -39,7 +39,6 @@ public class PixelRect extends Group { public PixelRect(float width, float height) { facade = HyperLap2DFacade.getInstance(); - projectManager = facade.retrieveProxy(ProjectManager.NAME); EditorTextureManager tm = facade.retrieveProxy(EditorTextureManager.NAME); lines[0] = new PixelLine(tm, 0, 0, width, 0); lines[1] = new PixelLine(tm, 0, 0, 0, height); @@ -95,9 +94,7 @@ public class PixelRect extends Group { } public void setOpacity(float opacity) { - Color clr = getColor(); - clr.a = opacity; - setColor(clr); + addAction(Actions.alpha(opacity, 0.3f, Interpolation.exp5Out)); } public Rectangle getRect() {