0

如何更新具有随机数的变量。我正在使用three.js。这是我的代码。它在第一次被称为生成一个随机位置的精灵时起作用,但随后它只是不断回到同一个位置。我认为通过在使用变量之前调用它们,我会更新它们,但它不起作用。

        var locX = Math.floor((Math.random()*450)+1);
        locX *= Math.floor(Math.random()*2) == 1 ? 1 : -1;
        var locY = Math.floor((Math.random()*250)+1);
        locY *= Math.floor(Math.random()*2) == 1 ? 1 : -1;
        var locZ = Math.floor((Math.random()*350)+1);
        locZ *= Math.floor(Math.random()*2) == 1 ? 1 : -1;          

        function spriteAI1() {
        //console.log(c2Sprite.position.x);
        //console.log(ranLocX);
        //console.log(ranTen);
            if (c2Sprite.position.x > 30 && c2Sprite.position.x <= 450) { 
            c2Sprite.translateX( -10 );
            } else if (c2Sprite.position.x < -31 && c2Sprite.position.x >= -450) {
            c2Sprite.translateX( 10 );
            } else if (c2Sprite.position.z < 31 && c2Sprite.position.x < 31 && c2Sprite.position.z > -29 && c2Sprite.position.x > -29) { 
            locX;
            locY;
            locZ;
            //c2Sprite.delete;
            //scene.remove(c2Sprite);
            //console.log("AI1");
            c2Sprite.position.set( locX, locY, locZ );
            //scene.add( c2Sprite );
            //c2Sprite.clone;
            }
        }   
4

1 回答 1

1

如果每次调用都需要不同的值,请在函数内部声明变量,而不是在函数外部。正如您目前所拥有的那样,变量被设置一次,并且该函数,无论它被调用多少次,都将引用那些曾经设置的值。

于 2013-09-26T16:32:00.973 回答