mouse selection of floor and terrain

This commit is contained in:
2022-06-09 01:41:32 +00:00
parent 977674aec4
commit be9ed4db69
2 changed files with 16 additions and 1 deletions

View File

@@ -7,6 +7,7 @@ import flixel.math.FlxRect;
import flixel.math.FlxVector; import flixel.math.FlxVector;
import flixel.graphics.FlxGraphic; import flixel.graphics.FlxGraphic;
import flixel.FlxG; import flixel.FlxG;
import flixel.input.mouse.FlxMouseEventManager;
import flash.display.BitmapData; import flash.display.BitmapData;

View File

@@ -14,6 +14,9 @@
(collect (range 512))) (collect (range 512)))
32 Keep))) 32 Keep)))
(var SELECTED_COLOR FlxColor.LIME)
(var NORMAL_COLOR FlxColor.WHITE)
(method :Void addFloorLayer [:Array<Array<Int>> tiles] (method :Void addFloorLayer [:Array<Array<Int>> tiles]
(let [&mut rowStartX 0 (let [&mut rowStartX 0
&mut rowStartY 0] &mut rowStartY 0]
@@ -24,6 +27,12 @@
(let [tileSprite (data.floorSprite tile)] (let [tileSprite (data.floorSprite tile)]
(set tileSprite.x x) (set tileSprite.x x)
(set tileSprite.y y) (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)) (add tileSprite))
(+= x (/ FLOOR_WIDTH 2)) (+= x (/ FLOOR_WIDTH 2))
(+= y (/ FLOOR_HEIGHT 2)))) (+= y (/ FLOOR_HEIGHT 2))))
@@ -44,13 +53,18 @@
(set tileSprite.y y) (set tileSprite.y y)
(when (> tileSprite.height SPRITE_HEIGHT) (when (> tileSprite.height SPRITE_HEIGHT)
(-= tileSprite.y 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)) (add tileSprite))
(+= x (/ FLOOR_WIDTH 2)) (+= x (/ FLOOR_WIDTH 2))
(+= y (/ FLOOR_HEIGHT 2)))) (+= y (/ FLOOR_HEIGHT 2))))
(-= rowStartX (/ FLOOR_WIDTH 2)) (-= rowStartX (/ FLOOR_WIDTH 2))
(+= rowStartY (/ FLOOR_HEIGHT 2))))) (+= rowStartY (/ FLOOR_HEIGHT 2)))))
(var CAMERA_SPEED 500) (var CAMERA_SPEED 500)
(method &override :Void update [:Float elapsed] (method &override :Void update [:Float elapsed]