var config = { type: Phaser.AUTO, width: 800, height: 600, parent: 'phaser-example', pixelArt: true, backgroundColor: '#1a1a2d', scene: { preload: preload, create: create } }; var game = new Phaser.Game(config); function preload () { this.load.image('tiles', 'assets/tilemaps/tiles/drawtiles-spaced.png'); this.load.image('car', 'assets/sprites/car90.png'); this.load.tilemapCSV('map', 'assets/tilemaps/csv/grid.csv'); } function create () { var map = this.make.tilemap({ key: 'map', tileWidth: 32, tileHeight: 32 }); // 将图像添加到地图中用作贴图集。一张地图可以使用多个贴图集。 注意,tile名称可以在Tiled导出的JSON文件中找到,也可以在Tiled中找到 编辑器。 // layerID很重要。如果你已经在Tiled中创建了地图,那么你就可以做到这一点 在tile中查看图层名称。或者您可以打开它导出的JSON文件和 看看层[].name值。无论哪种方式,它都必须匹配。 var tileset = map.addTilesetImage('tiles', null, 32, 32, 1, 2); // 创建一个新的Tilemap Layer,它呈现与给定对象相关联的LayerData layerID。当前在地图中选择的层被设置为这个新层。 var layer = map.createLayer(0, tileset, 0, 0); var player = this.add.image(32+16, 32+16, 'car'); // Left this.input.keyboard.on('keydown-A', function (event) { var tile = layer.getTileAtWorldXY(player.x - 32, player.y, true); if (tile.index === 2) { // Blocked, we can't move } else { player.x -= 32; player.angle = 180; } }); // Right this.input.keyboard.on('keydown-D', function (event) { var tile = layer.getTileAtWorldXY(player.x + 32, player.y, true); if (tile.index === 2) { // Blocked, we can't move } else { player.x += 32; player.angle = 0; } }); // Up this.input.keyboard.on('keydown-W', function (event) { var tile = layer.getTileAtWorldXY(player.x, player.y - 32, true); if (tile.index === 2) { // Blocked, we can't move } else { player.y -= 32; player.angle = -90; } }); // Down this.input.keyboard.on('keydown-S', function (event) { var tile = layer.getTileAtWorldXY(player.x, player.y + 32, true); if (tile.index === 2) { // Blocked, we can't move } else { player.y += 32; player.angle = 90; } }); }
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did31408