2017-09-03 18 views
0

这是我的代码的一部分:移相器不能添加矩形到组

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

}, 

所有我想要做的就是添加一个简单的矩形一组,然后将与在更新功能的播放器进行交互。我不能这样做,因为当我加载页面这似乎:

phaser.js:32473遗漏的类型错误: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)

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

回答

2

移相器组是DisplayObjectContainers,这意味着它们只能管理从DisplayObject继承的对象,如Sprites。矩形是几何对象,它们基本上只是一些辅助方法的纯数学运算。他们没有显示属性,这就是为什么你不能将它们添加到显示列表中。

要做你需要的东西,你需要将矩形渲染成一个Graphics或者BitmapData对象,或者使用不同的基于纹理的方法。