as3 Math.random()似乎无法使其正常工作

时间:2015-02-11 15:23:31

标签: actionscript-3

我正在开发as3 adobe flash,FLA是一个捕捉游戏,似乎工作正常,但我想调整它。我目前得到了:

试图实现每球的随机速度,我试过这个:

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

并在函数中我把它:

bgame[j].y += ymov;

(它的[j]因为我必须制造另一个阵列让球落下)

它目前将游戏中的所有球随机化为相同的速度,但我希望它可以用于单个球。

还有一个问题,当游戏结束时(一旦玩家获得2分,游戏将你带回主屏幕),屏幕上的球精灵并没有被抓住仍留在屏幕上,

2 个答案:

答案 0 :(得分:1)

您需要为每个球分配不同的ymov速度。现在您可以在顶级范围内指定值,然后使用它来更新每个球的位置。这就是他们速度相同的原因。

您可以为ymov函数中的每个球分配一个新的随机addBall()属性:

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

然后在你的Ballgame()更新功能中根据该属性移动球:

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

BTW作为样式注释,类通常为UpperCase,而变量和函数为lowerCase

答案 1 :(得分:0)

你的问题是你只是在掷骰子"一次并将结果用于每个球的速度。将ymov变为函数,每次都会产生不同的结果。 IE:

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