我正在开发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分,游戏将你带回主屏幕),屏幕上的球精灵并没有被抓住仍留在屏幕上,
答案 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;
}