在Phaser中使用JavaScript无法重叠

时间:2017-07-02 14:35:38

标签: javascript phaser-framework

我正在制作一个游戏,在这个游戏中,我想当玩家与硬币重叠时,硬币会消失,但这不是出于某种原因,我不知道为什么。当我制作地图时,我已经尝试了很多方法甚至将硬币放入瓷砖中,但即便如此,它仍然无法正常工作。

有人可以帮帮我吗?

select TOP 2 Customer_id,Customer_Name from Customer 
order by Customer_id

2 个答案:

答案 0 :(得分:0)

您的代码中存在三个问题。首先,变量的命名令人困惑。您正在创建一个论坛并将其分配给coin,但您还要添加新的精灵并将其分配给coin。那么调用重叠函数时coin的值是多少?也许这在技术层面上可以正常工作,但为了避免任何混淆,我会为不同的事情使用不同的变量名称。如果没有别的东西,它会使你的代码更具可读性。

其次,createcoin()中添加到游戏中的硬币精灵不会添加到组中。并且由于它没有添加到组中,因此从不启用精灵的物理主体。

最后,{(1}}函数在create()中只调用一次。我认为它应该在update()函数中调用。 Phaser.js中的update()函数是一种主要的游戏循环。每次帧更新都会调用它。

所以将这三个修复程序放在一起,我会尝试这样的事情:

arcade.overlap

答案 1 :(得分:0)

在你创建的创建函数中,在更新函数中你更新,杀死一个硬币不是初始状态,它是在某些条件下即将发生的事情,这两行

SearchString

属于更新功能。 您可能仍然对示波器有问题。

你也应该为硬币创建组,这样的东西,你创建它们,以便他们去创建函数

game.physics.arcade.overlap(coins, player, killcoin, null, this); //killcoin is callback so no(), coins with "s" as you are calling the whole group
function killcoin(coin,player) {
    coin.kill();
}

此外,camelCasing是您风格的绝佳补充,因为它提高了可读性(killCoin,createCoin ......)