input/touch joystick

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

var ufo;
var ufoSpeed = 200;

function preload() {
    game.world.setBounds(0,0,800, 600);
    game.load.image('ufo', 'assets/sprites/ufo.png');
}

function create() {
    // Create a ufo sprite as player.
    ufo = game.add.sprite(320, 240, 'ufo');
    ufo.anchor.setTo(0.5, 0.5);
	
	game.physics.enable(ufo,Phaser.Physics.ARCADE);

    // Use Austin Hallock's HTML5 Virtual Game Controller
    // https://github.com/austinhallock/html5-virtual-game-controller/
    // Note: you must also require gamecontroller.js on your host page.

    // Init game controller with left thumb stick
    GameController.init({
        left: {
            type: 'joystick',
            joystick: {
                touchStart: function() {
                    // Don't need this, but the event is here if you want it.
                },
                touchMove: function(joystick_details) {
                    game.input.joystickLeft = joystick_details;
                },
                touchEnd: function() {
                    game.input.joystickLeft = null;
                }
            }
        },
        right: {
            // We're not using anything on the right for this demo, but you can add buttons, etc.
            // See https://github.com/austinhallock/html5-virtual-game-controller/ for examples.
            type: 'none'
        }
    });

    // This is an ugly hack to get this to show up over the Phaser Canvas
    // (which has a manually set z-index in the example code) and position it in the right place,
    // because it's positioned relatively...
    // You probably don't need to do this in your game unless your game's canvas is positioned in a manner
    // similar to this example page, where the canvas isn't the whole screen.
    $('canvas').last().css('z-index', 20);
    $('canvas').last().offset( $('canvas').first().offset() );
}

function update() {
    // Check key states every frame.
    if (game.input.joystickLeft) {
        // Move the ufo using the joystick's normalizedX and Y values,
        // which range from -1 to 1.
        ufo.body.velocity.setTo(game.input.joystickLeft.normalizedX * 200, game.input.joystickLeft.normalizedY * ufoSpeed * -1);
    }
    else {
        ufo.body.velocity.setTo(0, 0);
    }
}

function render() {
    game.debug.text('Use the virtual joystick to move the UFO.', 20, 20);
    game.debug.text('This requires touch events, so try on your phone.', 20, 40);
}