From be9ed4db692cbfc508bdcbf6e9a468d4d6a4559f Mon Sep 17 00:00:00 2001 From: Nat Quayle Nelson Date: Thu, 9 Jun 2022 01:41:32 +0000 Subject: [PATCH] mouse selection of floor and terrain --- .../iso-rpg-engine/source/IsometricMapState.hx | 1 + .../iso-rpg-engine/source/IsometricMapState.kiss | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/projects/iso-rpg-engine/source/IsometricMapState.hx b/projects/iso-rpg-engine/source/IsometricMapState.hx index 07820237..70bc164b 100644 --- a/projects/iso-rpg-engine/source/IsometricMapState.hx +++ b/projects/iso-rpg-engine/source/IsometricMapState.hx @@ -7,6 +7,7 @@ import flixel.math.FlxRect; import flixel.math.FlxVector; import flixel.graphics.FlxGraphic; import flixel.FlxG; +import flixel.input.mouse.FlxMouseEventManager; import flash.display.BitmapData; diff --git a/projects/iso-rpg-engine/source/IsometricMapState.kiss b/projects/iso-rpg-engine/source/IsometricMapState.kiss index e3da928c..9109ad7e 100644 --- a/projects/iso-rpg-engine/source/IsometricMapState.kiss +++ b/projects/iso-rpg-engine/source/IsometricMapState.kiss @@ -14,6 +14,9 @@ (collect (range 512))) 32 Keep))) +(var SELECTED_COLOR FlxColor.LIME) +(var NORMAL_COLOR FlxColor.WHITE) + (method :Void addFloorLayer [:Array> tiles] (let [&mut rowStartX 0 &mut rowStartY 0] @@ -24,6 +27,12 @@ (let [tileSprite (data.floorSprite tile)] (set tileSprite.x x) (set tileSprite.y y) + (FlxMouseEventManager.add tileSprite + // handle click on floor: + ->downTS {} + ->upTS {} + ->overTS (set overTS.color SELECTED_COLOR) + ->outTS (set outTS.color NORMAL_COLOR)) (add tileSprite)) (+= x (/ FLOOR_WIDTH 2)) (+= y (/ FLOOR_HEIGHT 2)))) @@ -44,13 +53,18 @@ (set tileSprite.y y) (when (> tileSprite.height SPRITE_HEIGHT) (-= tileSprite.y SPRITE_HEIGHT)) + (FlxMouseEventManager.add tileSprite + // Handle click on terrain: + ->downTS {} + ->upTS {} + ->overTS (set overTS.color SELECTED_COLOR) + ->outTS (set outTS.color NORMAL_COLOR)) (add tileSprite)) (+= x (/ FLOOR_WIDTH 2)) (+= y (/ FLOOR_HEIGHT 2)))) (-= rowStartX (/ FLOOR_WIDTH 2)) (+= rowStartY (/ FLOOR_HEIGHT 2))))) - (var CAMERA_SPEED 500) (method &override :Void update [:Float elapsed]