对于我的Java脚本游戏(画布),我无法更新我的对象值

时间:2016-08-05 21:38:39

标签: javascript object canvas

这是我的游戏敌人的构造函数:

enter code here:

/// my constructor for enemy
function masinaCon(x,y,width,height,color){
    this.x=x;
    this.y=y;
    this.width=width;
    this.height=height;
    this.color=color;
    this.draw=function(){
        ctx.fillStyle=color;
        ctx.fillRect(x,y,width,height);
    };

}
// color of contsructor
function color(){
    return 'rgb('+Math.floor(Math.random()*1000)+','+Math.floor(Math.random()*100)+','+Math.floor(Math.random()*180)+')';
}

// array of enemy
var niz=[];

/////////////////////////////代码结尾

我用10个对象填充数组(var niz = [])并且我想将第三个对象向下移动2个像素,以便在每个帧中重复,以使其看起来像游戏(下降效果=> NIZ [2] + .Y = 2)

当我打印时,对象中的坐标正在增加,但是当我打印它们(对象)时,没有任何变化(视觉上),有人可以帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

很简单。 x和y引用构造函数中的原始值。只需更新绘图函数中的x和y,即可使用this

引用对象
this.draw=function(){
    ctx.fillStyle=color;
    ctx.fillRect(this.x,this.y,this.width,this.height); // x->this.x etc
};