我正在使用 Phaser 2.1.3。我用 Tiled 0.9.1 创建了一个平铺 map 只有一层默认图层和一张图 block 集图像(4 色图 block 32x32)。
我想让橙色瓷砖变成实心,玩家无法穿过这种瓷砖。
但在我的游戏中,玩家无法穿过舞台上的橙色方 block 和红色方 block 。我不明白为什么红色瓷砖 block 是实心的。
这是我的一些代码,完整代码在这里:https://github.com/q...sets/js/game.js
var map = this.add.tilemap('map1');
map.addTilesetImage('tileset');
map.setCollisionByExclusion([1]); // set orange tile solid
this.layer1 = map.createLayer('Tile Layer 1');
this.layer1.resizeWorld();
map.setTileIndexCallback(4, this.reachedDoorEvent, this); // when player reached black block, reachedDoorEvent function will invoke.
您可以在这里测试:http://qichunren.github.io/game1/index.html通过箭头键移动玩家(糖果)。
是移相器错误还是我遗漏了什么?
最佳答案
您正在使用map.setCollisionByExclusion
。来自文档:
“在给定图层中的所有图 block 上设置碰撞,给定数组中的 ID 除外。‘collides’参数控制是否启用 (true) 或禁用 (false) 碰撞)。”
(强调我的)
如果您只想要橙色图 block 实体,您应该使用map.setCollision
。
关于javascript - Phaser 框架中的平铺 map 碰撞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27036081/