standardize keyboard-based FlxCamera movement

This commit is contained in:
2022-06-21 20:14:48 +00:00
parent ca6a03cbeb
commit a6c8666160
7 changed files with 54 additions and 40 deletions

View File

@@ -0,0 +1,10 @@
package kiss_flixel;
import kiss.Prelude;
import kiss.List;
import flixel.FlxCamera;
import flixel.math.FlxVector;
import flixel.math.FlxPoint;
@:build(kiss.Kiss.build())
class CameraTools {}

View File

@@ -0,0 +1,14 @@
(function updateKeyControl [:FlxCamera camera :Float elapsed :Float speed :Void->Bool leftKey :Void->Bool rightKey :Void->Bool upKey :Void->Bool downKey]
(let [scrollAmount (* speed elapsed)
&mut :FlxVector movement (new FlxPoint)]
(when (leftKey) (-= movement.x 1))
(when (rightKey) (+= movement.x 1))
(when (upKey) (-= movement.y 1))
(when (downKey) (+= movement.y 1))
(when (< 0 movement.length)
(set movement (movement.normalize)))
(movement.scale scrollAmount)
(+= camera.scroll.x movement.x)
(+= camera.scroll.y movement.y)))
(function updateKeyControl [:FlxCamera camera :Float elapsed :Float speed :Void->Bool leftKey :Void->Bool rightKey :Void->Bool upKey :Void->Bool downKey]