From 2fd49f80ff9eb80d8e7629d750dcb8827073036b Mon Sep 17 00:00:00 2001 From: Nat Quayle Nelson Date: Mon, 24 Jan 2022 12:59:59 -0700 Subject: [PATCH] map 4 directions in handloose --- projects/handloose/source/TypingState.hx | 9 ++------ projects/handloose/source/TypingState.kiss | 26 ++++++++++++++++++++++ 2 files changed, 28 insertions(+), 7 deletions(-) diff --git a/projects/handloose/source/TypingState.hx b/projects/handloose/source/TypingState.hx index debc0390..d8b47c7e 100644 --- a/projects/handloose/source/TypingState.hx +++ b/projects/handloose/source/TypingState.hx @@ -7,6 +7,8 @@ import flixel.util.FlxColor; import flixel.input.gamepad.FlxGamepad; import flixel.text.FlxText; import haxe.ds.Option; +import kiss.Prelude; +import kiss.List; using flixel.util.FlxSpriteUtil; @@ -36,13 +38,6 @@ class TypingState extends FlxState return spr; } - override public function update(elapsed:Float) - { - super.update(elapsed); - - var lastId = getFirstInputId(); - } - function getFirstInputId():Option { // Important: can be null if there's no active gamepad yet! var gamepad:FlxGamepad = FlxG.gamepads.lastActive; diff --git a/projects/handloose/source/TypingState.kiss b/projects/handloose/source/TypingState.kiss index df094cf2..555fff1b 100644 --- a/projects/handloose/source/TypingState.kiss +++ b/projects/handloose/source/TypingState.kiss @@ -44,6 +44,32 @@ (var SPRITE_SIZE 100) (var TEXT_SIZE 24) +(prop :Map inputCodes (new Map)) +(var DIR_ORDER [ Left Down Up Right ]) + +(prop &mut :FlxText instructionText null) +(method &override :Void update [:Float elapsed] + #|{ + super.update(elapsed); + + var lastId = getFirstInputId(); + }|# + + // Prompt to map the arrows + (let [mappedCodes (count inputCodes) + nextToMap (nth DIR_ORDER mappedCodes)] + (if (= DIR_ORDER.length mappedCodes) + (set instructionText.text "") + { + (unless instructionText + (set instructionText (new FlxText "" TEXT_SIZE)) + (add instructionText)) + (set instructionText.text "Press $nextToMap") + (instructionText.screenCenter) + (whenLet [(Some id) (getFirstInputId)] + (dictSet inputCodes id nextToMap)) + }))) + (method :FlxSprite makeTriangleSprite [:ArrowDir dir :String text :Int x :Int y] #|{ var spr = new FlxSprite();