From 2ac91a149d680b3297569bead83be8182d1f08eb Mon Sep 17 00:00:00 2001 From: Nat Quayle Nelson Date: Sat, 9 Jul 2022 03:06:22 +0000 Subject: [PATCH] camera controls for habit game --- .../Project.xml | 1 + .../source/HabitState.hx | 1 + .../source/HabitState.kiss | 20 +++++++++++++++---- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/projects/flixel-desktop-habit-puzzle-game/Project.xml b/projects/flixel-desktop-habit-puzzle-game/Project.xml index 9b77f0ed..c153485a 100644 --- a/projects/flixel-desktop-habit-puzzle-game/Project.xml +++ b/projects/flixel-desktop-habit-puzzle-game/Project.xml @@ -37,6 +37,7 @@ + diff --git a/projects/flixel-desktop-habit-puzzle-game/source/HabitState.hx b/projects/flixel-desktop-habit-puzzle-game/source/HabitState.hx index 11889cb7..cd59a9ff 100644 --- a/projects/flixel-desktop-habit-puzzle-game/source/HabitState.hx +++ b/projects/flixel-desktop-habit-puzzle-game/source/HabitState.hx @@ -25,6 +25,7 @@ import kiss_tools.FlxKeyShortcutHandler; import HabitModel; import hx.strings.Strings; import datetime.DateTime; +using kiss_flixel.CameraTools; import jigsawx.JigsawPiece; import jigsawx.Jigsawx; diff --git a/projects/flixel-desktop-habit-puzzle-game/source/HabitState.kiss b/projects/flixel-desktop-habit-puzzle-game/source/HabitState.kiss index ff8e4fd7..f5dc2a3a 100644 --- a/projects/flixel-desktop-habit-puzzle-game/source/HabitState.kiss +++ b/projects/flixel-desktop-habit-puzzle-game/source/HabitState.kiss @@ -12,8 +12,15 @@ (FlxG.plugins.add (new FlxMouseControl)) (set bgColor FlxColor.TRANSPARENT) (super.create)) + +(var KEYBOARD_SCROLL_SPEED 200) + (method &override :Void update [:Float elapsed] (super.update elapsed) + + (pieceCamera.updateScrollWheelZoom elapsed 1) + (pieceCamera.updateMouseBorderControl elapsed KEYBOARD_SCROLL_SPEED 0.15) + // Hold left-click to hide the habit text and see the image clearly: (when entryTexts (if FlxG.mouse.pressed (remove entryTexts) (add entryTexts))) @@ -36,15 +43,18 @@ (prop &mut :HabitModel model null) -(prop EDGE_LEEWAY 20) -(var PUZZLE_WIDTH 4) -(var PUZZLE_HEIGHT 4) +(prop EDGE_LEEWAY 25) +(prop BUBBLE_SIZE 15) +(var PUZZLE_WIDTH 6) +(var PUZZLE_HEIGHT 5) (var TOTAL_PIECES (* PUZZLE_WIDTH PUZZLE_HEIGHT)) (prop &mut :FlxTypedGroup rewardSprites null) (prop &mut rewardFileIndex 0) (prop &mut maxRewardFile 0) +(var SCROLL_BOUND_MARGIN 200) + (method setModel [m &opt :RewardFile currentRewardFile] (set model m) (set shortcutHandler (new FlxKeyShortcutHandler)) @@ -118,7 +128,8 @@ (set s.mouseStopDragCallback ->:Void [s x y] { - ~(dictSet (the Map save.data.storedPositions) i (new FlxPoint s.x s.y)) + (pieceCamera.calculateScrollBounds rewardSprites SCROLL_BOUND_MARGIN) + (dictSet (the Map save.data.storedPositions) i (new FlxPoint s.x s.y)) (save.flush) }) @@ -134,6 +145,7 @@ (rewardSprites.add s))) (add rewardSprites)))) + (pieceCamera.calculateScrollBounds rewardSprites SCROLL_BOUND_MARGIN) (when entryTexts (remove entryTexts)) (set entryTexts (new FlxTypedGroup))