需要数组帮助(调用数组)

时间:2013-11-04 19:14:44

标签: html arrays html5 canvas

任何人都可以在数组部分帮助我吗?我正在制作一个彩色拖放游戏,将物品拖入一个盒子,当错误或正确时,人们会收到通知。

如何从以下位置调用数组:

 var items=[]
items.push({x:400,y:330,width:30,height:30,color:"rgba(100,223,0, 0.5)",isDragging:false});
items.push({x:300,y:330,width:30,height:30,color:"rgba(220,0,0, 0.5)",isDragging:false});
items.push({x:200,y:330,width:30,height:30,color:"rgba(220,223,0, 0.5)",isDragging:false});

为:

if (items[0].push(x > 400 && x <175 && y>50 &&y<235)){ 
 //console.log("ok");
 canvas2.innerHTML = "Score:" + 1;

 }

 else if(x > 255 && x < 376 && y > 50 && y <235){
  canvas2.innerHTML = "WRONG! please try again."
  rect = false;
  myMove = false;
 }
  else if(x > 455 && x < 576 && y > 50 && y <235){
  canvas2.innerHTML = "WRONG! please try again."
  rect = false;
  myMove = false;

 }

1 个答案:

答案 0 :(得分:0)

这只会将一个布尔值推送到数组:

if (items[0].push(x > 400 && x <175 && y>50 &&y<235)){ ...

首先评估:

x > 400 && x <175 && y>50 && y < 235

然后将结果(true或false)推送到您的数组(没有别的)。您的条件检查基本上是检查push返回的长度,该长度始终为非零,因此您的条件为真,并且将始终使用。

您的情况也“不可能”,因为x不能同时高于400且低于175 ......

要解决此特定问题,您需要稍微更改代码。我不确定你打算如何使用它,因为将结果推送到你的数组与你已存储的内容不匹配,如果你打算将x和y存储为新对象,你需要创建一个JSON字符串。 / p>

您可以尝试这样做:

if (x > 175 && x < 400 && y > 50 && y < 235) {
    ...
} else if ...

(用实际代码替换......)