function Block(){
this.x = 100;
this.y = 100;
}
// update canvas
function UpdateCanvas(){
// check if game is still on going
if (!isStopped)
{
for(var i = segments.length - 1; i > 0 ; i--)
{
segments[i] = segments[i - 1];
}
switch(direction)
{
case "left":
segments[0].x = segments[0].x - pixelChange;
DrawCanvas();
break;
case "right":
segments[0].x = segments[0].x + pixelChange;
DrawCanvas();
break;
case "up":
segments[0].y = segments[0].y - pixelChange;
DrawCanvas();
break;
case "down":
segments[0].y = segments[0].y + pixelChange;
DrawCanvas();
break;
}
}
}
我创建了一个数组和一个名为Block的类。现在在数组中创建了2个对象并将blockArray [0]的sx属性更改为其他数字后,blockArray [1]的sx也会更改,类似于blockArray [0]的sx值,而不是保留初始值100。 / p>
我做错了什么?如何在不影响数组中其他对象的情况下更改blockArray [0]的x?
编辑: 更新了代码。 segments是一个带有块元素的数组。
答案 0 :(得分:0)
固定谢谢。 Norguard和Mark Reed的评论让我找到了错误的代码部分(我忘记在帖子中添加)。
做的:
for(var i = segments.length - 1; i > 0 ; i--){
segments[i] = segments[i - 1];
}
将段[i-1]的引用保存到segment [i]而不是保存对象。经验告诉我。