2015-02-11 443 views
0

即時通訊工作在as3 adobe flash,FLA是一款吸引人的遊戲,似乎工作正常,但我想調整它。我目前有:as3 Math.random()似乎無法正常工作

試圖實現每球隨機速度,我想這:

var speed:Number = 7; 
var RandomSpeed:Number = Math.random() * 7; 
var ymov:Number = RandomSpeed + speed; 

,並在功能,我把這個:

bgame[j].y += ymov; 

(其[J]因爲我有使另一個陣列讓球落下)

其目前隨機所有的球在遊戲中以相同的速度,但我希望它做到個別球。

這裏還有一個多的問題,當遊戲結束(一旦球員得到2分的遊戲帶你回到主屏幕)這是在屏幕上,而不是陷入仍然球精靈保留在屏幕上,

回答

1

您需要爲每個球分配不同的ymov速度。現在,您可以將該值分配給頂級範圍,然後使用它更新每個球的位置。這就是爲什麼他們都是一樣的速度。

您可以在addBall()功能分配一個新的隨機ymov屬性,每個球:

bgame[i].ymov = 7 + Math.random() * 7; 

然後在你的Ballgame()更新功能移動基於該屬性球:

bgame[j].y += bgame[j].ymov; 

BTW作爲一個樣式註釋,類通常是UpperCase而變量和函數是lowerCase

+0

謝謝你的工作原理:D,有沒有辦法讓速度不會慢於7幀? – Ajay 2015-02-11 19:48:58

+0

我仍然希望它是隨機的,但不低於7 @Aaron – Ajay 2015-02-11 19:49:53

+0

當然,我編輯我的答案使用'7 + Math.random()* 7' - 這應該給7到14的值。 – Aaron 2015-02-11 19:56:40

0

你的問題是,你只是「擲骰子」一次,並使用該結果的每個球的速度。使ymov成爲一個函數,每次都會產生不同的結果。 IE:

function ymov():Number 
{ 
    var speed:Number = 7; 
    var RandomSpeed:Number = Math.random() * 7; 
    return RandomSpeed + speed; 
} 
+0

感謝您的快速回復,但似乎並沒有這樣做,還有另一種方法可以做到嗎? – Ajay 2015-02-11 17:13:46

相關問題