Skip to content

Instantly share code, notes, and snippets.

@codebykeoma
Created April 19, 2019 03:59
Show Gist options
  • Save codebykeoma/9c54966efc17daee84f5704f5e276718 to your computer and use it in GitHub Desktop.
Save codebykeoma/9c54966efc17daee84f5704f5e276718 to your computer and use it in GitHub Desktop.

Revisions

  1. code by keoma created this gist Apr 19, 2019.
    115 changes: 115 additions & 0 deletions phaser-07-keyboard-controls.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,115 @@
    const ZERO = 0;
    const GAME_WIDTH = 800;
    const GAME_HEIGHT = 600;


    var config = {
    type: Phaser.AUTO,
    width: GAME_WIDTH,
    height: GAME_HEIGHT,
    physics: {
    default: 'arcade',
    arcade: {
    gravity: { y: 300 },
    debug: false
    }
    },
    scene: {
    preload: preload,
    create: create,
    update: update
    }
    };

    var game = new Phaser.Game(config);

    function preload() {
    this.load.image('sky', 'assets/sky.png');
    this.load.image('ground', 'assets/platform.png');
    this.load.image('star', 'assets/star.png');
    this.load.image('bomb', 'assets/bomb.png');
    this.load.spritesheet(
    'dude',
    'assets/dude.png',
    {
    frameWidth: 32,
    frameHeight: 48
    }
    );
    }

    function create() {
    this.add.image(GAME_WIDTH/2, GAME_HEIGHT/2, 'sky');

    platforms = this.physics.add.staticGroup();

    platforms.create(400, 568, 'ground').setScale(2).refreshBody();

    platforms.create(600, 400, 'ground');
    platforms.create(50, 250, 'ground');
    platforms.create(750, 220, 'ground');

    player = this.physics.add.sprite(100, 450, 'dude');

    player.setBounce(0.2);
    player.setCollideWorldBounds(true);

    this.anims.create({
    key: 'left',
    frames: this.anims.generateFrameNumbers(
    'dude',
    {
    start: 0,
    end: 3
    }
    ),
    frameRate: 10,
    repeat: -1
    });

    this.anims.create({
    key: 'turn',
    frames: [{
    key: 'dude',
    frame: 4
    }],
    frameRate: 20
    });

    this.anims.create({
    key: 'right',
    frames: this.anims.generateFrameNumbers(
    'dude',
    {
    start: 5,
    end: 8
    }
    ),
    frameRate: 10,
    repeat: -1
    });

    this.physics.add.collider(player, platforms);

    cursors = this.input.keyboard.createCursorKeys();
    }

    function update() {
    if (cursors.left.isDown)
    {
    player.setVelocityX(-160);
    player.anims.play('left', true);
    }
    else if (cursors.right.isDown) {
    player.setVelocityX(160);
    player.anims.play('right', true);
    }
    else {
    player.setVelocityX(0);
    player.anims.play('turn');
    }

    if(cursors.up.isDown && player.body.touching.down) {
    player.setVelocityY(-330);
    }
    }