画布 - 您可以将坐标设置为新的零点以相对于位置元素吗?

时间:2012-05-31 09:17:45

标签: canvas positioning

我正在制作一个小游戏,以便熟悉画布的东西 - 现在我有一个像这样的菜单类

function Menu(x,y,width,height,...,game){
    this.x      = x;
    this.y      = y;
    this.width  = width;
    this.height = height;
    // ...

    this.render = function(){
        game.stage.fillRect(this.x, this.y, this.width, this.height); // draw background
        // ...
        game.stage.fillText("MENU", this.x + 20, this.y + 10);
    }
}

是否可以将this.xthis.y设置为某种默认值,因此每次我想在菜单中放置内容时,我都不必编写this.x + ...

1 个答案:

答案 0 :(得分:1)

在菜单绘制功能开始时,只需将场景转换为菜单位置(this.x,this.y)。不要忘记之后重置它。

我认为game.stage是画布上下文对象。

game.stage.save();
game.stage.translate(this.x, this.y);

// now (0, 0) becomes (this.x, this.y)
// ... some drawings

game.stage.restore();