例如,我正在尝试做到这一点,以便当其中一个圆圈偏离屏幕边缘时,它将其X坐标重置为-100,0或840,940。这是因为我希望它从另一个随机位置移回到屏幕上。
有没有办法在这种处理中使用随机函数?
我想解决的唯一方法就是这样做:
//in my real program this would be taking place in a for loop parsing through an array
int = random(1,2);
if(x = 1){
posX[i] = random(-100,0);
}
else{
posX[i] = random(840,940);
}
但这会占用额外的空间。我认为有某种方法可以在一定间隔内创建随机值。
答案 0 :(得分:0)
基本上,您所拥有的就是我所采用的方法。您的代码存在一些问题:您使用的是=
而不是==
,并且您正在精确地比较1
而不是范围。您可能想要这样的东西:
float x = random(1);
if(x < .5){
myValue = random(-100, 0);
}
else{
myValue = random(840, 940);
}
关于编程的一件很酷的事情是,您可以创建自己的函数,如下所示:
float getValueFromRanges(float startOne, float endOne, float startTwo, float endTwo){
if(random(1) < .5){
return random(startOne, endOne);
}
else{
return random(startTwo, endTwo);
}
}
然后,只要您想要这些范围内的随机值,就可以调用此函数:
float myValue = getValueFromRanges(-100, 0, 840, 940);
或者您可以使用三元运算符在一行代码中做到这一点:
float myValue = random(1) < .5 ? random(-100, 0) : random(840, 940);
后一种方法可读性不高,因此我可能会创建一个函数。