camera controls for habit game

This commit is contained in:
2022-07-09 03:06:22 +00:00
parent 473d9c94c0
commit 2ac91a149d
3 changed files with 18 additions and 4 deletions

View File

@@ -37,6 +37,7 @@
<haxelib name="haxe-strings" /> <haxelib name="haxe-strings" />
<haxelib name="kiss" /> <haxelib name="kiss" />
<haxelib name="kiss-tools" /> <haxelib name="kiss-tools" />
<haxelib name="kiss-flixel" />
<haxelib name="datetime" /> <haxelib name="datetime" />
<haxeflag name="--macro" value="kiss.Kiss.setup()" /> <haxeflag name="--macro" value="kiss.Kiss.setup()" />

View File

@@ -25,6 +25,7 @@ import kiss_tools.FlxKeyShortcutHandler;
import HabitModel; import HabitModel;
import hx.strings.Strings; import hx.strings.Strings;
import datetime.DateTime; import datetime.DateTime;
using kiss_flixel.CameraTools;
import jigsawx.JigsawPiece; import jigsawx.JigsawPiece;
import jigsawx.Jigsawx; import jigsawx.Jigsawx;

View File

@@ -12,8 +12,15 @@
(FlxG.plugins.add (new FlxMouseControl)) (FlxG.plugins.add (new FlxMouseControl))
(set bgColor FlxColor.TRANSPARENT) (set bgColor FlxColor.TRANSPARENT)
(super.create)) (super.create))
(var KEYBOARD_SCROLL_SPEED 200)
(method &override :Void update [:Float elapsed] (method &override :Void update [:Float elapsed]
(super.update 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: // Hold left-click to hide the habit text and see the image clearly:
(when entryTexts (if FlxG.mouse.pressed (remove entryTexts) (add entryTexts))) (when entryTexts (if FlxG.mouse.pressed (remove entryTexts) (add entryTexts)))
@@ -36,15 +43,18 @@
(prop &mut :HabitModel model null) (prop &mut :HabitModel model null)
(prop EDGE_LEEWAY 20) (prop EDGE_LEEWAY 25)
(var PUZZLE_WIDTH 4) (prop BUBBLE_SIZE 15)
(var PUZZLE_HEIGHT 4) (var PUZZLE_WIDTH 6)
(var PUZZLE_HEIGHT 5)
(var TOTAL_PIECES (* PUZZLE_WIDTH PUZZLE_HEIGHT)) (var TOTAL_PIECES (* PUZZLE_WIDTH PUZZLE_HEIGHT))
(prop &mut :FlxTypedGroup<FlxExtendedSprite> rewardSprites null) (prop &mut :FlxTypedGroup<FlxExtendedSprite> rewardSprites null)
(prop &mut rewardFileIndex 0) (prop &mut rewardFileIndex 0)
(prop &mut maxRewardFile 0) (prop &mut maxRewardFile 0)
(var SCROLL_BOUND_MARGIN 200)
(method setModel [m &opt :RewardFile currentRewardFile] (method setModel [m &opt :RewardFile currentRewardFile]
(set model m) (set model m)
(set shortcutHandler (new FlxKeyShortcutHandler)) (set shortcutHandler (new FlxKeyShortcutHandler))
@@ -118,7 +128,8 @@
(set s.mouseStopDragCallback (set s.mouseStopDragCallback
->:Void [s x y] ->:Void [s x y]
{ {
~(dictSet (the Map<Int,FlxPoint> save.data.storedPositions) i (new FlxPoint s.x s.y)) (pieceCamera.calculateScrollBounds rewardSprites SCROLL_BOUND_MARGIN)
(dictSet (the Map<Int,FlxPoint> save.data.storedPositions) i (new FlxPoint s.x s.y))
(save.flush) (save.flush)
}) })
@@ -134,6 +145,7 @@
(rewardSprites.add s))) (rewardSprites.add s)))
(add rewardSprites)))) (add rewardSprites))))
(pieceCamera.calculateScrollBounds rewardSprites SCROLL_BOUND_MARGIN)
(when entryTexts (remove entryTexts)) (when entryTexts (remove entryTexts))
(set entryTexts (new FlxTypedGroup)) (set entryTexts (new FlxTypedGroup))