来自BitmapData行的Sprite

时间:2015-11-07 21:08:51

标签: javascript bitmapdata phaser-framework

我在从BitmapData创建精灵时遇到问题。当我有一个矩形形状时,创建精灵没有问题,但当bitmapData只是一行时,精灵只是空。



bmd = this.game.add.bitmapData(this.line.width, this.line.height);

//This works fine:
bmd.ctx.rect(0, 0, 32, 32);
bmd.ctx.fillStyle = "#0f0";
bmd.ctx.fill();
var platform = this.game.add.sprite(this.line.midPoint().x, this.line.midPoint().y, bmd);

//This doesn't work
bmd.ctx.this.lineWidth = "8";
bmd.ctx.strokeStyle = 'white';
bmd.ctx.moveTo(this.startPoint.x, this.startPoint.y);
bmd.ctx.lineTo(this.endPoint.x, this.endPoint.y);
bmd.ctx.stroke();
var platform = this.game.add.sprite(this.line.midPoint().x, this.line.midPoint().y, bmd);




是否存在已知问题或我的代码中是否存在可怕的错误?

感谢您的时间

1 个答案:

答案 0 :(得分:0)

我找到了办法。

Game.prototype.create = function(){
  this.bmd = this.game.add.bitmapData(this.game.width-20, this.game.height);
  this.bmd.ctx.beginPath();
  this.bmd.ctx.lineWidth = "4";
  this.bmd.ctx.strokeStyle = 'white';
  this.bmd.ctx.stroke();
  this.platform = this.game.add.sprite(0, 0, this.bmd);  
};

Game.prototype.draw = function(){
  this.bmd.clear();
  this.bmd.ctx.beginPath();
  this.bmd.ctx.moveTo(this.startPoint.x, this.startPoint.y);
  this.bmd.ctx.lineTo(this.endPoint.x , this.endPoint.y);
  this.bmd.ctx.lineWidth = 4;
  this.bmd.ctx.stroke(); 
  this.bmd.ctx.closePath();
  this.bmd.render();  
}

事实证明我应该添加精灵一次,然后重新渲染它。