簡體   English   中英

如何正確隨機化此循環中的項目?

[英]How to properly randomize items on this loop?

在這個程序中,雨水在循環中落下。 當雨滴落在地面上時,它又從頂部開始。 每次程序初始化時都會創建一個隨機顏色和隨機雨滴位置。 但是,當它們回到畫布頂部時,我無法弄清楚如何使每個雨滴的位置和顏色隨機。

 var xPositions = []; var yPositions = []; for (var count = 0; count < 16; count++) { fill(random(0, 255), random(0, 255), random(0, 255)); xPositions.push(random(0, 400)); yPositions.push(random(0, 400)); } draw = function() { background(204, 247, 255); for (var i = 0; i < xPositions.length; i++) { noStroke(); ellipse(xPositions[i], yPositions[i], 10, 10); yPositions[i] += 4; if (yPositions[i] > 400) { yPositions[i] = 0; } } }; var mouseClicked = function() { xPositions.push(mouseX); yPositions.push(mouseY); };

你已經有了答案,因為你得到了

if (yPositions[i] > 400) {          yPositions[i] = 0;        }

健康)狀況。 只需在那里添加類似的東西

xPositions[i] = random(0,400);

var xPositions = [];
var yPositions = [];
var color = [];
for (var count = 0; count < 16; count++) {
  color.push(random(0, 255), random(0, 255), random(0, 255));
  xPositions.push(random(0, 400));
  yPositions.push(random(0, 400));
}

draw = function() {
  background(204, 247, 255);

  for (var i = 0; i < xPositions.length; i++) {
    noStroke();
    fill(var[i]);
    ellipse(xPositions[i], yPositions[i], 10, 10);
    yPositions[i] += 4;

    if (yPositions[i] > 400) {
      yPositions[i] = 0;
      xPositions[i] = random(0, 400);
      var[i] = (random(0, 255), random(0, 255), random(0, 255));
    }
  }
};

var mouseClicked = function() {
  xPositions.push(mouseX);
  yPositions.push(mouseY);
};

我建議將 x、y 和顏色變量放在一個對象中,這樣您就不必使用 3 個數組

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM