有人可以在数组部分帮助我吗?我正在制作一个颜色拖放游戏,其中物品将被拖入一个盒子,当它是错的还是对的时,人们会收到通知。
如何从以下位置调用数组:
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;
}
这只会将布尔值推送到数组:
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 ...
(替换...使用实际代码)