2017-07-27 83 views
1

我試圖讓這個基本的小遊戲那裏是在屏幕的中間平臺,還有一些隨機產卵周圍地區的圈子,當你觸摸它只是外面就像遊戲中的食物一樣。我唯一的問題是,有時候這個圈子會在中間的平臺裏產卵,從而無法觸摸。我使用隨機函數將x和y值放在播放區域中,因此每次它產生一個隨機位置。有什麼方法可以確保它不會出現在中間的特定平臺上?我的基本的JavaScript在p5js我如何做一個隨機生成一個特定區域

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

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


} 
+0

請把你的代碼放在帖子裏面,讓別人知道如何引導你。 – UmarZaii

回答

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); 
} 
+0

那麼,我會如何將這2個數字設置爲x和y值並將這些數字設置在橢圓內?我試圖保持的範圍是,對於x,在寬度/ 4 + 16(橢圓的半徑)和466之間,對於y,它在266和234之間。我覺得如果我這樣做,它不會無法在寬度/ 4和466之間產卵,我試着做一個if語句,如果x在y之間,並且在y之間,我試圖避開它,它會創建一個新的一個 – Stacktempacc

+0

@Stacktempacc真正的教訓是,你需要[打破你的問題](http://happycoding.io/tutorials/how-to/program),並考慮如何在你的頭腦中做這件事,考慮用代碼來實現它。 –

+0

Nvm我現在得到了ty – Stacktempacc