我正在制作一个简单的马里奥,就像平台游戏一样,当玩家角色跳到他们的头部时,我想要杀死敌人,并且当他与侧面的敌人发生碰撞时杀死玩家。
当玩家精灵正在移动时,我已设法做到这一点,但是,如果玩家站立不动,敌人只是通过他而不会杀死他。
您可以在此处查看GitHub repo中的所有代码:
https://github.com/failedCoder/failedCoder.github.io
你可以在这里试一下游戏(加载几秒钟):
答案 0 :(得分:1)
首先为玩家和敌人启用物理,设置速度,现在你可以选择如何向左和向左移动敌人,我将举例说明如何向左移动它们。所以,要记住的重要一点是:“物理系统只有在至少一个物体具有速度时才有效。”
enemies = game.add.group();
enemies.enableBody = true;
var enemy1 = enemies.create(230,490,'invader');
//enemy1.body.gravity.y = 300;
enemy1.body.velocity.x = -100;
var enemy2 = enemies.create(430,490,'invader');
//enemy2.body.gravity.y = 300;
enemy2.body.velocity.x = -100;
在更新功能中添加以下代码:
game.physics.arcade.collide(player, enemies, touchingEnemies);
然后创建一个触摸敌人的功能:
function touchingEnemies(player, enemy)
{
if (player.body.touching.right || player.body.touching.left)
{
// player is dead
player.alpha = .5;
}
else if (player.body.touching.down)
{
// player is jumping on enemy, kill it
enemy.alpha = .5;
}
}