我在另一个楼梯上的一块土地上制作了2张瓷砖地图。我做引力,一切都很好地与地面,但我不知道如何检查与瓷砖梯子的接触。我这样创造:
//Ground
map.ground = game.add.tilemap('map-ground', 32, 32);
map.ground.addTilesetImage('tileset');
layer.ground = map.ground.createLayer(0);
layer.ground.setScale(3);
map.ground.setCollision(174);//ID grounds
//Ladders&Hide
map.laddersAndHide = game.add.tilemap('map-ladders&hide', 32, 32);
map.laddersAndHide.addTilesetImage('tileset');
layer.laddersAndHide = map.laddersAndHide.createLayer(0);
layer.laddersAndHide.setScale(3);
map.laddersAndHide.setCollision(168);// ID ladders
然后他做了这样的检查:
game.physics.arcade.collide(player, layer.ground);
game.physics.arcade.collide(player, layer.laddersAndHide, function () {
console.log(true);
});
然而我意识到与地面的碰撞阻挡了与楼梯的碰撞。当我移除与地面的碰撞时,梯子工作(虽然不是我需要的,我无法通过它)。所以我试过了:
game.physics.arcade.overlap(player, layer.laddersAndHide, testFunc, null, this);
然后连续执行函数testFunc。也许是因为我没有在图层中指定特定的id。但我该怎么说呢?现在我已经停止了这个:
game.physics.arcade.collide(player, [layer.ground, layer.laddersAndHide], function () {
console.log(this);
});
我想也许有办法检查联系人究竟是什么层?
我为英语道歉