input/override default controls

 
var game = new Phaser.Game(800, 600, Phaser.CANVAS, 'phaser-example', { preload: preload, create: create, update: update, render: render });

var ufo;
var sky;
var leftBtn;
var rightBtn;
var speed = 4;

function preload() {

    game.world.setBounds(0, 0, 1280, 600);
    game.load.image('ground', 'assets/tests/ground-2x.png');
    game.load.image('river', 'assets/tests/river-2x.png');
    game.load.image('sky', 'assets/tests/sky-2x.png');
    game.load.image('cloud0', 'assets/tests/cloud-big-2x.png');
    game.load.image('cloud1', 'assets/tests/cloud-narrow-2x.png');
    game.load.image('cloud2', 'assets/tests/cloud-small-2x.png');

    game.load.spritesheet('button', 'assets/buttons/arrow-button.png', 112, 95);
    game.load.image('spacebar', 'assets/buttons/spacebar.png');

    game.load.image('ufo', 'assets/sprites/ufo.png');
    
}

function create() {

    // background images
    sky = game.add.sprite(0, 0, 'sky');
    game.add.sprite(0, 360, 'ground');
    game.add.sprite(0, 400, 'river');
    game.add.sprite(200, 120, 'cloud0');
    game.add.sprite(-60, 120, 'cloud1');
    game.add.sprite(900, 170, 'cloud2');

    // Create a ufo sprite as a player.
    ufo = game.add.sprite(320, 240, 'ufo');
    ufo.anchor.setTo(0.5, 0.5);
    
    // Stretch sky horizontally:
    sky.scale.setTo(2, 1);
    
    // Make the camera follow the ufo.
    game.camera.follow(ufo);

    // Add 2 sprite to display hold direction.
    leftBtn = game.add.sprite(160 - 112, 200, 'button', 0);
    leftBtn.alpha = 0;
    rightBtn = game.add.sprite(640 - 112, 200, 'button', 1);
    rightBtn.alpha = 0;

    // Add a sprite to display spacebar press.
    spaceBtn = game.add.sprite(400 - 112, 100, 'spacebar');
    spaceBtn.alpha = 0;

    // Prevent directions and space key events bubbling up to browser,
    // since these keys will make web page scroll which is not
    // expected.
    game.input.keyboard.addKeyCapture([
        Phaser.Keyboard.LEFT,
        Phaser.Keyboard.RIGHT,
        Phaser.Keyboard.UP,
        Phaser.Keyboard.DOWN,
        Phaser.Keyboard.SPACEBAR
    ]);
    
}

function update() {
    
    // Check key states every frame.
    // Move ONLY one of the left and right key is hold.
    if (game.input.keyboard.isDown(Phaser.Keyboard.LEFT))
    {
        ufo.x -= speed;
        ufo.angle = -15;
        leftBtn.alpha = 0.6;
    }
    else if (game.input.keyboard.isDown(Phaser.Keyboard.RIGHT))
    {
        ufo.x += speed;
        ufo.angle = 15;
        rightBtn.alpha = 0.6;
    }
    else
    {
        ufo.rotation = 0;
        leftBtn.alpha = rightBtn.alpha = 0;
    }

    // 50 as a second parameter is a good choice if you are running 60FPS.
    if (game.input.keyboard.downDuration(Phaser.Keyboard.SPACEBAR, 50))
    {
        console.log('space bar pressed');
        spaceBtn.alpha = 1;
    }

    if (spaceBtn.alpha > 0)
    {
        spaceBtn.alpha -= 0.03;
    }

}

function render() {

    game.debug.text('Hold left/right to move the ufo.', 16, 32);
    game.debug.text('Direction and Space key events are stopped by Phaser now,', 16, 48);
    game.debug.text('so they will no longer be sent to the browser', 16, 64);
    game.debug.text('Now you can press UP/DOWN or SPACE to see what happened.', 16, 80);

}