ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Javascript-Phaser 3中的outOfBoundsKill Equivelant

2019-10-24 23:35:36  阅读:289  来源: 互联网

标签:phaser-framework javascript


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

解决方法:

我没有找到等效的内置函数,但是我知道如何复制它

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);

不要使用destroy().它的计算量很大,并且需要您重新创建该对象(如果还没有指向它的对象).

标签:phaser-framework,javascript
来源: https://codeday.me/bug/20191024/1924391.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有