0

最近几天,我一直在用 Three JS 研究魔方。我几乎完成了它,但是在正确嵌套组时遇到了问题。基本上我已经完成了所有的立方体,当单击一个面上的一个中心立方体时,该面上的所有立方体都被添加到一个组中并旋转该组。问题是当我尝试将立方体读取到场景时,它们会回到原来的位置,而不是新的旋转位置。这是单击顶面时的示例

else if(cubie.position.x == 0 && cubie.position.y == 12.5 && cubie.position.z == 0){
    for(var i = scene.children.length - 1; i >=0; i--){
        var cubie = scene.children[i];
        if(cubie.position.y == 12.5){
            group.add(cubie);
        }
    }
    group.rotateOnAxis(new THREE.Vector3(0,-1,0), Math.PI/2);
}

这里是我尝试将小方块读回现场的地方

for(var i = group.children.length - 1; i >= 0; i--){
    scene.add(group.children[i]);
}
scene.remove(group);

如果我注释掉这两行,则会出现一个完整的旋转,但由于立方体现在属于组,我无法再次旋转它们。如果我删除第一行,并留下 remove(group) 那么显然该行消失了,但是如果我将两行都留在里面,那么立方体根本不会改变,就好像当我将立方体读入场景时它会使用它的原始放回去......我已经尝试了我能想到的一切。任何帮助将不胜感激

如果有人需要,我会将整个代码发布到 pastebin。 http://pastebin.com/vj6LgR0r

4

0 回答 0