HaxeFlixel Logo HaxeFlixel Snippets
  • About
  • Tutorials
  • Back to HaxeFlixel.com
  • Basics
    • Screen
    • Adding
  • Objects
    • Alive
    • Health
  • Sprites
    • Making Sprites
    • Loading Sprites
    • Animation
    • Alpha
    • Color
    • Facing
    • Scale
    • Baked Rotations
  • Text
    • FlxText
    • FlxBitmapText
  • Movement
    • Velocity
    • Acceleration
    • MaxVelocity
    • Gravity
    • Jumping
    • Angle
    • Angular Velocity
    • Angular Acceleration
  • Groups
    • Basic Group
    • Typed Group
    • Recycling
  • Tiling
    • Tileblock
    • Tilemap
  • Overlap
    • Simple Overlap
    • Overlap Callbacks
  • Collision
    • 1-to-1 Collision
    • Immovable
    • Tilemap Collision
    • Moving Platforms
  • Camera
    • Flash
    • Fade
    • Shake
    • Follow
  • Input
    • Basics
    • Keyboard
    • Mouse
    • Button
  • Sound
    • FlxSound

Basics

FlxInput is a general class used for multiple types of inputs: Keyboard, Mouse, Touch, and Buttons.

Each input has 4 states: justPressed, pressed, justReleased, and released.

if (FlxG.keys.pressed.X)
{
    jump();
}

Demonstration

Source

source/PlayState.hx

package;

import flixel.FlxG;
import flixel.FlxState;
import flixel.text.FlxText;
import flixel.ui.FlxVirtualPad;

class PlayState extends FlxState
{
    var status:FlxText;
    var pad:FlxVirtualPad;
    var lastInput:Int = -1;

    override public function create()
    {
        super.create();

        status = new FlxText(0, 12, FlxG.width, "", 12);
        status.alignment = FlxTextAlign.CENTER;
        status.setBorderStyle(FlxTextBorderStyle.SHADOW, 0xff333333);
        status.text = "Released";
        add(status);

        pad = new FlxVirtualPad(FlxDPadMode.NONE, FlxActionMode.A);
        add(pad);
    }

    override public function update(elapsed:Float)
    {
        super.update(elapsed);

        if (pad.buttonA.justPressed || FlxG.keys.justPressed.X)
        {
            if (lastInput != 0)
            {
                status.text += "\nJust Pressed";
                lastInput = 0;
            }
        }
        else if (pad.buttonA.pressed || FlxG.keys.pressed.X)
        {
            if (lastInput != 1)
            {
                status.text += "\nPressed";
                lastInput = 1;
            }
        }
        else if (pad.buttonA.justReleased || FlxG.keys.justReleased.X)
        {
            if (lastInput != 2)
            {
                status.text += "\nJust Released";
                lastInput = 2;
            }
        }
        else if (pad.buttonA.released || !FlxG.keys.pressed.X)
        {
            if (lastInput != -1)
            {
                status.text += "\nReleased";
                lastInput = -1;
            }
        }
        if (status.y + status.height > FlxG.height)
        {
            status.y = FlxG.height - status.height;
        }
    }
}
View Source on GitHub

Tags

input keyboard basics buttons
  1. Home
  2. Input
  3. Basics
Powered By HaxeFlixel Logo HaxeFlixel