Phaser 无法将矩形添加到组中

4 javascript phaser-framework

这是我的代码的一部分:

create_bounds: function(){

    this.bounds = game.add.group();

    this.left = new Phaser.Rectangle(0, 0, 20, game.world.height);
    this.right = new Phaser.Rectangle(game.world.width, 0, 20, game.world.height);

    this.bounds.add(this.left);
    //this.bounds.addAt(this.right);
    //var right =

    //this.bounds.add(left);

},
Run Code Online (Sandbox Code Playgroud)

我想做的就是向组中添加一个简单的矩形,然后该矩形将在更新函数中与玩家交互。我无法这样做,因为当我加载页面时会出现以下内容:

Phaser.js:32473 Uncaught TypeError: child.preUpdate 不是

在 Phaser.Group.preUpdate (phaser.js:

在 Phaser.World.Phaser.Group.preUpdate (phaser.js:

在 Phaser.Stage.preUpdate (phaser.js:30486)

在 Phaser.Game.updateLogic (phaser.js:

在 Phaser.Game.update (phaser.js:

在 Phaser.RequestAnimationFrame.updateRAF (phaser.js:

在 _onLoop (phaser.js:63015)

仅当我尝试将矩形添加到组中时才会发生这种情况,而不是在创建矩形时发生。我该如何解决?

Pho*_*orm 6

Phaser Groups 是 DisplayObjectContainers,这意味着它们只能管理从 DisplayObject 继承的对象,例如 Sprites。矩形是几何对象,它们基本上只是带有一些辅助方法的纯数学。它们没有显示属性,这就是您无法将它们添加到显示列表的原因。

要执行您需要的操作,您需要将矩形渲染为 Graphics 或 BitmapData 对象,或者使用不同的基于纹理的方法。