我已经使用Phaser 2一段时间了,但是最近转换为Phaser 3,我想知道是否有一种方法或成员可能等同于'outOfBoundsKill'。我在Phaser 3中有一个Arc Object,并对其施加了重力,因此我想确保在超出画布范围时将其杀死或破坏。
有关outOfBoundsKill的更多信息:https://phaser.io/docs/2.6.2/Phaser.Sprite.html#outOfBoundsKill
我尝试过此代码示例,但它没有破坏弧对象,'ball'是弧对象。
ball.on('worldbounds', function() {
if (!Over) {
ball.destroy();
HealthBar.livesLeft -= 1;
HealthBar.cs.scale.x = HealthBar.livesLeft / HealthBar.lives;
var shake = this.sound.add('shake');
shake.play();
}
}, this);
答案 0 :(得分:4)
我没有找到等效的内置函数,但我确实知道如何复制它
$('#tmpModal').modal('show').find('.modal-content').load($(this).attr('href'));
请勿使用 const sprite = this.physics.add.sprite(x, y, 'key');
// Turn on wall collision checking for your sprite
sprite.setCollideWorldBounds(true);
// Turning this on will allow you to listen to the 'worldbounds' event
sprite.body.onWorldBounds = true;
// 'worldbounds' event listener
sprite.body.world.on('worldbounds', function(body) {
// Check if the body's game object is the sprite you are listening for
if (body.gameObject === this) {
// Stop physics and render updates for this object
this.setActive(false);
this.setVisible(false);
}
}, sprite);
。这在计算上很昂贵,并且需要重新创建对象(如果还没有指向它的对象)。