Jump to content

map.setCollision doesn't work


ArtemSh
 Share

Recommended Posts

Hi. I want to make a collision between character and tiles so that character couldn't go through the tiles, but nothing works.

<script>

var game = new Phaser.Game(800, 600, Phaser.AUTO);

var player;
var cursor;
var map;
var layer;

var GameState = {
    preload: function() {

        this.load.image('character', 'assets/character.png');
        this.load.tilemap('map', 'assets/tile_csv.csv', null, Phaser.Tilemap.CVS);
        this.load.image('tiles', 'assets/tile.png');

    },
    create: function() {

        game.physics.startSystem(Phaser.Physics.ARCADE);
        game.stage.backgroundColor = "#0000ff";

        map = game.add.tilemap('map', 32, 32);
        map.addTilesetImage('tiles');
        layer1 = map.createLayer(0);
        layer1.resizeWorld();
        map.setCollision(2);

        player = game.add.sprite(50, game.world.height - 110, 'block');
        game.physics.arcade.enable(player);
        player.anchor.setTo(0.5);
        player.scale.setTo(0.4);
        player.body.collideWorldBounds = true;

        cursors = game.input.keyboard.createCursorKeys();

        game.camera.follow(player);

    },
    update: function() {

        game.physics.arcade.collide(player, layer1);

        player.body.velocity.x = 0;
        player.body.velocity.y = 0;

        if (cursors.left.isDown) {
            player.body.velocity.x = -1500;
        } else if (cursors.right.isDown) {
            player.body.velocity.x = 1500;
        }

        if (cursors.up.isDown) {
            player.body.velocity.y = -1500;
        } else if (cursors.down.isDown) {
            player.body.velocity.y = 1500;
        }


    }

    
};

game.state.add('GameState', GameState);
game.state.start('GameState');

</script>

 

Link to comment
Share on other sites

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...