所以我需要生成随机数并使用它几次,问题是它在EnterFrame函数上生成。
此函数生成数字0-5:
function pn():Number {
var pn:Number = Math.round(Math.random()*5);
return pn;
}
这里我检查字符是否没有跳跃和stage.addEventListener(Event.ENTER_FRAME,jump);
if(!mainJumping){
mainJumping = true;
stage.addEventListener(Event.ENTER_FRAME, jump)
}
这里是跳转功能,我需要使用随机生成的数字:
function jump(e) {
if ( i < 50) {
i++;
item[1][pn()].y -=1
} else {
item[1][pn()].y += 1;
if (item[1][pn()].y == 0){
stage.removeEventListener(Event.ENTER_FRAME, jump)
}
}
问题是每次检查IF时跳转功能都会产生新的数字。我需要让这个数字生成,直到这一部分才会改变:
if (item[1][pn()].y == 0){
stage.removeEventListener(Event.ENTER_FRAME, jump)
}
此后它可以生成新号码。有你的想法吗?谢谢。
答案 0 :(得分:0)
创建一个名为myRandomNumber的实例变量。在它的getter中,如果它为null,则调用pn()来填充它。
这样的事情:
在课堂上,定义变量:
private var _myRandomNumber:int = 0;
在你的吸气中:
public function get myRandomNumber():int {
if (_myRandomNumber == 0) {
_myRandomNumber = pn();
}
return _myRandomNumber;
}
现在,当你调用myRandomNumber时,你会得到一个“随机数”:)
答案 1 :(得分:0)
// Create a variable higher up the scope chain to store the number
var random = 0;
// Assuming this is in a function at the same level as the jump function
//function() ???? {
if(!mainJumping){
mainJumping = true;
random = pn(); // Generate new random number when jump begins
stage.addEventListener(Event.ENTER_FRAME, jump)
}
//}
function jump(e) {
var item = item[1][random]; // Grab the random item
if ( i < 50) {
i++;
item.y -=1
} else {
item.y += 1;
if (item.y == 0){
stage.removeEventListener(Event.ENTER_FRAME, jump)
}
}
}