Phaser 3中的outOfBoundsKill Equivelant

时间:2018-10-31 20:56:09

标签: javascript phaser-framework

我已经使用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);

1 个答案:

答案 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); 。这在计算上很昂贵,并且需要重新创建对象(如果还没有指向它的对象)。