Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/479.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用三个js检查动态变化的布尔值_Javascript_Arrays_Three.js_Boolean - Fatal编程技术网

Javascript 如何使用三个js检查动态变化的布尔值

Javascript 如何使用三个js检查动态变化的布尔值,javascript,arrays,three.js,boolean,Javascript,Arrays,Three.js,Boolean,我正在用三个js制作一个3D 4x4x4 tic tac toe,为了检查win combo条件,我创建了一个布尔数组。因为有16*4=64个块,所以我创建了一个大小为64的布尔数组,并在默认情况下将其设置为false。然后,每当用户单击其中一个块时,它就会动态地将单击的对象更改为true。 为了检查横向赢的条件,我用了这个 var摄影机、场景、渲染器、网格、材质、控件; var targetList=[]; var targetListBool=新数组(64).fill(false); co

我正在用三个js制作一个3D 4x4x4 tic tac toe,为了检查win combo条件,我创建了一个布尔数组。因为有16*4=64个块,所以我创建了一个大小为64的布尔数组,并在默认情况下将其设置为false。然后,每当用户单击其中一个块时,它就会动态地将单击的对象更改为true。 为了检查横向赢的条件,我用了这个

var摄影机、场景、渲染器、网格、材质、控件;
var targetList=[];
var targetListBool=新数组(64).fill(false);
console.log(targetListBool);
//var投影仪,鼠标={x:0,y:0};
var投影仪;
var mouse=new THREE.Vector2(),
交叉的;
init();
制作动画();
addCubes();
render();
函数addCubes(){
var xDistance=30;
var zDistance=15;
var geometry=新的三个.BoxBufferGeometry(10,10,10);
var材料=新的三网格基本材料({
颜色:0x6C70A8
});
//初始偏移,因此不会从中间开始。
var xOffset=-80;
//1
for(设i=0;i<4;i++){
for(设j=0;j<4;j++){
var mesh=新的三点网格(几何体,新的三点网格材质({
颜色:0xadc9f4
}));
mesh.position.x=(xDistance*(i))+xOffset;
网格位置z=(zDistance*(j));
场景。添加(网格);
目标列表。推送(网格);
}
//2
for(设j=0;j<4;j++){
var mesh2=新的三点网格(几何体,新的三点网格材质)({
颜色:0xadc9f4
}));
mesh2.position.x=(xDistance*(i))+xOffset;
mesh2.position.z=(zDistance*(j));
网格2.位置y=15;
场景。添加(网格2);
目标列表推送(mesh2);
}
//3
for(设j=0;j<4;j++){
var mesh3=新的三点网格(几何体,新的三点网格材质)({
颜色:0xadc9f4
}));
mesh3.position.x=(xDistance*(i))+xOffset;
mesh3.position.z=(zDistance*(j));
3.位置y=30;
场景。添加(网格3);
目标列表推送(mesh3);
}
//4
for(设j=0;j<4;j++){
var mesh4=新的三点网格(几何体,新的三点网格材质)({
颜色:0xadc9f4
}));
mesh4.position.x=(xDistance*(i))+xOffset;
mesh4.position.z=(zDistance*(j));
网格4.位置y=45;
场景。添加(网格4);
targetList.push(网格4);
}
}
对于(var i=0;i0&&INTERSECTED!=相交[0]。对象){
相交=相交[0]。对象;
交叉。材料。发射。setHex(0xff0000);
console.log(INTERSECTED.name);
//log(“Hit@”+toString(与[0].点相交));
//更改最近面的颜色。
//相交[0].face.color.setHex(0xffa500);
//相交[0]。object.geometry.colorsNeedUpdate=true;
对于(var i=0;i
如果您的系统在x、y或z轴上有4条直线,则系统将获胜。您的功能仅检查一个方向上的布尔值。因此,最好是以三维方式跟踪数据。以下是一个示例。我手动