Skip to content

Instantly share code, notes, and snippets.

@MSGhero
Last active October 8, 2017 15:23
Show Gist options
  • Save MSGhero/4fb4bfcef15ffaf403ee3ac98c91aa1c to your computer and use it in GitHub Desktop.
Save MSGhero/4fb4bfcef15ffaf403ee3ac98c91aa1c to your computer and use it in GitHub Desktop.
Excerpt of InputUtil
public static var defaultPadMappings:Array<Array<FlxGamepadInputID>> = [
[FlxGamepadInputID.LEFT_STICK_DIGITAL_LEFT, FlxGamepadInputID.DPAD_LEFT],
[FlxGamepadInputID.LEFT_STICK_DIGITAL_RIGHT, FlxGamepadInputID.DPAD_RIGHT],
[FlxGamepadInputID.LEFT_STICK_DIGITAL_UP, FlxGamepadInputID.DPAD_UP],
[FlxGamepadInputID.LEFT_STICK_DIGITAL_DOWN, FlxGamepadInputID.DPAD_DOWN],
[FlxGamepadInputID.RIGHT_STICK_DIGITAL_LEFT],
[FlxGamepadInputID.RIGHT_STICK_DIGITAL_RIGHT],
[FlxGamepadInputID.RIGHT_STICK_DIGITAL_UP],
[FlxGamepadInputID.RIGHT_STICK_DIGITAL_DOWN],
[FlxGamepadInputID.A],
[FlxGamepadInputID.B],
[FlxGamepadInputID.START],
[FlxGamepadInputID.LEFT_SHOULDER, FlxGamepadInputID.LEFT_TRIGGER],
[FlxGamepadInputID.RIGHT_SHOULDER, FlxGamepadInputID.RIGHT_TRIGGER]
];
public static function keyboardGamepadMove(pad:FlxGamepad, prevActions:ActionSet, actions:ActionSet):Void {
if (pad == null) keyboardMove(prevActions, actions);
else {
actions.pressed.L = pad.anyPressed(padMappings[0]) || FlxG.keys.anyPressed(keyMappings[0]);
actions.pressed.R = pad.anyPressed(padMappings[1]) || FlxG.keys.anyPressed(keyMappings[1]);
actions.pressed.U = pad.anyPressed(padMappings[2]) || FlxG.keys.anyPressed(keyMappings[2]);
actions.pressed.D = pad.anyPressed(padMappings[3]) || FlxG.keys.anyPressed(keyMappings[3]);
move(prevActions, actions);
}
}
static function move(prevActions:ActionSet, actions:ActionSet):Void {
var jr = actions.justReleased;
var jp = actions.justPressed;
var p = actions.pressed;
var pp = prevActions.pressed;
jr.L = !p.L && pp.L;
jr.R = !p.R && pp.R;
jr.U = !p.U && pp.U;
jr.D = !p.D && pp.D;
jp.L = !pp.L && p.L;
jp.R = !pp.R && p.R;
jp.U = !pp.U && p.U;
jp.D = !pp.D && p.D;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment