0

任何人都可以在阵列部分帮助我吗?我正在制作一个颜色拖放游戏,其中项目将被拖到一个盒子里,当它的错误或正确时人们会收到通知。

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

 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;

 }
4

1 回答 1

0

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

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

首先对其进行评估:

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

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

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

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

你可以试试这个:

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

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

于 2013-11-04T19:51:03.513 回答