图像作为Phaser中的固体实体

时间:2014-05-07 18:53:52

标签: phaser-framework

我有一个tilemap,并且在tilemap图层的顶部添加了另一个包含tetris块图像的图层。我希望原始tilemap上的播放器能够识别作为实体添加的图像。我不知道该如何解决这个问题?是否有我可以使用的物理包或精灵对象的属性,我可以修改它以使图像成为一个实体?

我尝试了以下代码:

layer = map.createLayer('World1');
spriteLayer = game.add.group();
spriteLayer.z = 1;

// Add sprites to spriteLayer.
tetris = game.add.sprite(200, 120, 'tetris');
tetris.anchor.setTo(0.1, 0.5);
spriteLayer.add(tetris);             

function update() {
game.physics.arcade.collide(p, spriteLayer); 
game.physics.arcade.collide(p, layer);
...
}

但这似乎不起作用。 Sprite图层是包含俄罗斯方块块图像的图层,p是我的播放器。我无法弄清楚如何解决这个问题,并会感谢任何有关如何处理它的帮助或任何其他想法。谢谢!

1 个答案:

答案 0 :(得分:0)

你可以根据自己的喜好碰撞Sprite,但每次检查都必须是自己的碰撞调用。所以基本上你上面做的很好(假设' p'是你的玩家),但是你需要确保你的俄罗斯方块精灵和玩家精灵都已经启用了物理碰撞。

如果spriteLayer中的所有内容都要发生碰撞,您可以使用以下方法轻松完成:

spriteLayer = game.add.physicsGroup();

然后添加到其中的任何内容都将默认启用Arcade Physics主体。