0

我正在制作一个小应用程序,您可以在其中拖放球。当你用这个球击中一个球体时,你会得到一个点,球会移动到一个随机坐标。我的问题是,在你第一次击中球体后,它会改变位置,但你可以再次击中它。这是代码(没有拖放)

ball.addEventListener(Event.ENTER_FRAME, hit);

var randX:Number = Math.floor(Math.random() * 540);
var randY:Number = Math.floor(Math.random() * 390);

function hit(event:Event):void
{
if (ball.hitTestObject(s)){ //s is the sphere
    s.x = randX + s.width;
    s.y = randY + s.width;
}
}
4

1 回答 1

0

似乎您的randXrandY变量只会被评估一次。

因此,如果球的命中测试返回 true,球体的 x/y 坐标将第一次改变,但不会再改变。试试这个怎么样:

function hit(event:Event):void
{
    if (ball.hitTestObject(s))
    {
        //s is the sphere
        s.x = Math.floor(Math.random() * 540) + s.width;
        s.y = Math.floor(Math.random() * 390) + s.height; // note I changed width to height
    }
}
于 2012-05-24T19:01:30.730 回答