var game = new Phaser.Game(800, 600, Phaser.CANVAS, 'phaser-example', { preload: preload, create: create, update: update, render: render }); function preload() { // csv的tilemap game.load.tilemap('map', 'assets/tilemaps/csv/catastrophi_level2.csv', null, Phaser.Tilemap.CSV); game.load.image('tiles', 'assets/tilemaps/tiles/catastrophi_tiles_16.png'); game.load.spritesheet('player', 'assets/sprites/spaceman.png', 16, 16); } var map; var layer; var cursors; var player; function create() { // 创建tilemap,指定每个tile的大小,16x16 map = game.add.tilemap('map', 16, 16); // image添加上 map.addTilesetImage('tiles'); // layer layer = map.createLayer(0); layer.resizeWorld(); // 设置碰撞 map.setCollisionBetween(54, 83); // 这行可以调试碰撞信息 //layer.debug = true; // Player player = game.add.sprite(48, 48, 'player', 1); player.animations.add('left', [8,9], 10, true); player.animations.add('right', [1,2], 10, true); player.animations.add('up', [11,12,13], 10, true); player.animations.add('down', [4,5,6], 10, true); game.physics.enable(player, Phaser.Physics.ARCADE); // 碰撞size(width, height, offsetX, offsetY) player.body.setSize(10, 14, 2, 1); game.camera.follow(player); cursors = game.input.keyboard.createCursorKeys(); var help = game.add.text(16, 16, 'Arrows to move', { font: '14px Arial', fill: '#ffffff' }); help.fixedToCamera = true; } function update() { // 碰撞检测 game.physics.arcade.collide(player, layer); player.body.velocity.set(0); if (cursors.left.isDown) { player.body.velocity.x = -100; player.play('left'); } else if (cursors.right.isDown) { player.body.velocity.x = 100; player.play('right'); } else if (cursors.up.isDown) { player.body.velocity.y = -100; player.play('up'); } else if (cursors.down.isDown) { player.body.velocity.y = 100; player.play('down'); } else { player.animations.stop(); } } function render() { //game.debug.body(player); }
player.body.setSize(10, 14, 2, 1)可以设置碰撞的size