如何在特定区域外进行随机生成

时间:2017-07-27 23:50:32

标签: p5.js

我试图制作这个基本的小游戏,其中屏幕中间有一个平台,当你触摸它时,就会像游戏蛇中的食物一样随机地围绕该区域产生圆圈。我唯一的问题是,有时圆圈会在平台中间产生,使其无法触摸。我使用随机函数将x和y值放在游戏区域中,因此每次产生它时都会给出一个随机位置。有没有办法确保它不会出现在中间的特定平台上?我在p5js的基本JavaScript中执行此操作

function coin () {
    this.x = random (16, width-16);
    this.y = random (16, height-91);

    this.show = function() {
        ellipse (this.x, this.y, 32, 32);
    }


}

1 个答案:

答案 0 :(得分:1)

想想你将如何做到这一点。尝试写出一组步骤,用英语(不是代码),当你从两个范围中得到一个随机数时,你会遵循这些步骤。

我如何做到这一点:

  • 翻转硬币以确定该号码应来自哪一方。
  • 现在选择了一个边,然后使用普通的random()函数生成该范围内的数字。

例如,假设我想从1-30中选择一个数字,但我不希望11-19成为选项。我就是这样做的:

var number;
if(random() < .5){
  number = random(1, 10);
}
else{
  number = random(20, 30);
}

if(random() < .5)行正在翻转硬币,因此您可以在50%的时间内选择每个范围。如果范围不相等,您可能需要调整此百分比。

你也可以提出一个随机数,直到它超出你想要的范围。像这样:

var number = random(1, 30);
while(number >= 11 && number <=19){
  number = random(1, 30);
}