2017-02-18 44 views
0

我创建了codepen来显示此错误。Phaser矩形标记行为

更新函数:

update: function(){ 
    this.timeBar.width = this.timeBar.width - 1; 

设置为仅改变宽度。但是,在铬上查看它似乎也改变了立场。这是一个错误,还是它只是我没有考虑到的东西,而编写这些代码?

+0

欢迎堆栈溢出!你的问题的全部内容必须在**你的问题中**,而不仅仅是链接。链接腐烂,使问题及其答案在未来的人们中毫无用处,人们不应该离开现场去帮助你。在**问题中放置一个[mcve] **,最好使用Stack Snippets('<>'工具栏按钮)使其可运行。更多:[*我如何问一个好问题?*](/帮助/如何问) –

+0

Thx删除,链接格式。 –

回答

0

它可以用图形来有些复杂,但我发现使用的BitmapData一个例子:

create: function(){ 
    var bmd = this.game.add.bitmapData(300, 40); 
     bmd.ctx.beginPath(); 
     bmd.ctx.rect(0, 0, 300, 80); 
     bmd.ctx.fillStyle = '#00685e'; 
     bmd.ctx.fill(); 

    var bglife = this.game.add.sprite(this.game.world.centerX, this.game.world.centerY, bmd); 
    bglife.anchor.set(0.5); 

    bmd = this.game.add.bitmapData(280, 30); 
    bmd.ctx.beginPath(); 
     bmd.ctx.rect(0, 0, 300, 80); 
     bmd.ctx.fillStyle = '#FFFFFF'; 
     bmd.ctx.fill(); 

    this.widthLife = new Phaser.Rectangle(0, 0, bmd.width, bmd.height); 
    this.totalLife = bmd.width; 

    this.life = this.game.add.sprite(this.game.world.centerX - bglife.width/2 + 10, this.game.world.centerY, bmd); 
    this.life.anchor.y = 0.5; 
    this.life.cropEnabled = true; 
    this.life.crop(this.widthLife); 

    this.scheduler = this.game.time.events.loop(1500, this.cropLife, this); 
    }, 

    cropLife: function(){ 
    if(this.widthLife.width <= 0){ 
     this.widthLife.width = this.totalLife; 
     this.scheduler.stop(); 
    } 
    else{ 
     this.game.add.tween(this.widthLife).to({ width: (this.widthLife.width - (this.totalLife/10)) }, 200, Phaser.Easing.Linear.None, true); 
    } 
    }, 

    update: function(){ 
    this.life.updateCrop(); 
    } 

You can see the discussion in detail here

+0

我通过删除和重绘图形来实际解决这个问题,但感谢您的帮助 – GuruYaya