我正在使用JavaScript制作canvas
游戏,但在保存数据方面遇到了一些问题。我正在使用for循环在画布上放置图像,我想保存对象中每个图像的信息。对于每个图像一个对象。
function CreateBlocks(){
for(var i = 0; i <= blocks; i++){
var img = new Image();
img.src = "/images/Block.png";
blockObject = {
x: x,
y: y,
points: 10
}
ctx.drawImage(img,x,y);
x += 100;
y += 100;
}
}
现在这显然会在每次循环时覆盖blockObject
。我尝试将循环值添加到对象的名称,如block[i]Object
或blockObject[i]
,但这会返回语法错误。
我可以为每个值创建一个单维数组,但这对我来说似乎相当混乱。如何在循环中创建对象?
答案 0 :(得分:6)
只需使用数组并每次都按下新对象:
function CreateBlocks(){
var arr = [];
for(var i = 0; i <= blocks; i++){
var img = new Image();
img.src = "/images/Block.png";
arr.push({
x: x,
y: y,
points: 10
});
ctx.drawImage(img,x,y);
x += 100;
y += 100;
}
}
答案 1 :(得分:0)
如果你创建了一个blockObjects
数组,那么使用blockObject[i]
语法的第二个想法就可以了:
var blockObjects=[];
function CreateBlocks(){
for(var i = 0; i <= blocks; i++){
var img = new Image();
img.src = "/images/Block.png";
blockObjects[i] = {
x: x,
y: y,
points: 10
};
ctx.drawImage(img,x,y);
x += 100;
y += 100;
}
}