2012-05-24 132 views
0

我正在做一個小應用程序,你可以拖放一個球。當你用這個球打出一個球時,你會得到一個點並且球會移動到一個隨機的座標上。我的問題是,第一次擊球后,它會改變位置,但你可以再次擊球。下面是代碼(不包括拖放)AS3 - 抓球遊戲

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; 
} 
} 

回答

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 
    } 
} 
+0

非常感謝,固定:) – Zoske