as3 Math.random() 似乎无法正常工作
as3 Math.random() cant seem to get it working correctly
我正在使用 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,游戏会将您带回主屏幕)屏幕上未被捕获的小球精灵仍然留在屏幕上,
你的问题是你只有 "rolling the dice" 一次,并将该结果用于每个球的速度。将 ymov
变成一个函数,每次都会产生不同的结果。即:
function ymov():Number
{
var speed:Number = 7;
var RandomSpeed:Number = Math.random() * 7;
return RandomSpeed + speed;
}
您需要为每个球分配不同的 ymov
速度。就像现在一样,您在顶级范围内分配值,然后使用它来更新每个球的位置。这就是为什么他们的速度都一样。
您可以在 addBall()
函数中为每个球分配一个新的随机数 ymov
属性:
bgame[i].ymov = 7 + Math.random() * 7;
然后在你的 Ballgame()
更新函数中根据 属性:
移动球
bgame[j].y += bgame[j].ymov;
顺便说一句,作为样式注释,类 通常是 UpperCase
,而变量和函数是 lowerCase
。
我正在使用 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,游戏会将您带回主屏幕)屏幕上未被捕获的小球精灵仍然留在屏幕上,
你的问题是你只有 "rolling the dice" 一次,并将该结果用于每个球的速度。将 ymov
变成一个函数,每次都会产生不同的结果。即:
function ymov():Number
{
var speed:Number = 7;
var RandomSpeed:Number = Math.random() * 7;
return RandomSpeed + speed;
}
您需要为每个球分配不同的 ymov
速度。就像现在一样,您在顶级范围内分配值,然后使用它来更新每个球的位置。这就是为什么他们的速度都一样。
您可以在 addBall()
函数中为每个球分配一个新的随机数 ymov
属性:
bgame[i].ymov = 7 + Math.random() * 7;
然后在你的 Ballgame()
更新函数中根据 属性:
bgame[j].y += bgame[j].ymov;
顺便说一句,作为样式注释,类 通常是 UpperCase
,而变量和函数是 lowerCase
。