gpt4 book ai didi

javascript - Phaser sprite.kill() 有时不起作用

转载 作者:行者123 更新时间:2023-11-30 16:52:36 27 4
gpt4 key购买 nike

我正在用 Phaser 编写一些游戏,我遇到了方法 sprite.kill() 的问题。

有时,当我调用 sprite.kill() 时,Phaser 似乎会因碰撞/重叠而破坏主体,但视觉元素(图像和可拖动对象)仍在屏幕上。

我已经通过 foreach 为我的所有对象设置了重叠方法:

garbList.forEach(function(g) {                                                                                                    
trashList.forEach(function(t) {
game.physics.arcade.overlap(g.sprite, t.sprite, garbHitTrash);
});
});

我有一个 garbageList 和一个 trashList,它们有一个称为 garbHitTrash 的重叠方法。

当调用 garbHitTrash 时,它只是“将垃圾扔到垃圾桶上”,销毁其 sprite 并将其从 garbList 中弹出。

function garbHitTrash(garb, trash) {
if(garb.trash === trash.type) {
result['acertos']++;
} else {
result['erros']++;
}
garb.kill();
popGarbage(garb)
console.log('garbList.length ' + garbList.length);
}

最佳答案

如果您需要完全删除您的元素,请查看destroy 方法而不是kill。调用 kill 只是将某些属性设置为 false(如 alivevisible)的简写。但是,由于您的对象仍然存在并且仍在移动(我想是由于碰撞),这些属性可能会被另一个组件设置或重置。

关于javascript - Phaser sprite.kill() 有时不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30281611/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com