用 if 语句停止 .push

问题描述 投票:0回答:1

这是我需要完成的课程的简单雨滴程序。我想告诉程序是否有

25
yPositions
xPositions
的数组以停止使用
if
语句推送雨滴数组。

var xPositions = [random(0, 400)]; //Raindrop randomized X position 
var yPositions = [0]; Raindrop Y position

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

    noStroke();
    fill(0, 200, 255);

    for (var i = 0; i < xPositions.length; i++) {
        ellipse(xPositions[i], yPositions[i], 10, 10); //raindrop loop

        if (yPositions[i] > 405) { //Duplicates the raindrops each time a raindrop hits a Y position of 405
            yPositions[i] = -10;
            xPositions[i] = random(0, 400);
            yPositions.push(i);
            xPositions.push(i);
            yPositions[i] += 5;

        } 

        if xPositions.length === 25 {
            this is where i want to tell the program to stop pushing both xPositions
            and yPositions if there are 25 arrays* /
        }

        yPositions[i] += 5;

    }

};

好吧,我并没有真正尝试任何具体的事情,因为我真的不知道需要做什么。我是编码的新手。

arrays if-statement push draw
1个回答
0
投票

根据您的描述,您似乎想添加一个 if 语句以停止将雨滴数组推送到 xPositions 和 yPositions 数组,一旦它们达到 25 的长度。这是添加了 if 语句的代码的更新版本:

var xPositions = [random(0, 400)]; //Raindrop randomized X position 
var yPositions = [0]; //Raindrop Y position
var numRaindrops = 1; //Counter for the number of raindrops

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

    noStroke();
    fill(0, 200, 255);

    for (var i = 0; i < xPositions.length; i++) {
        ellipse(xPositions[i], yPositions[i], 10, 10); //raindrop loop

        if (yPositions[i] > 405) { //Duplicates the raindrops each time a raindrop hits a Y position of 405
            yPositions[i] = -10;
            xPositions[i] = random(0, 400);
        } 

        yPositions[i] += 5;
    }

    if (numRaindrops < 25) {
        yPositions.push(0);
        xPositions.push(random(0, 400));
        numRaindrops++;
    }
};

我添加了一个新变量 numRaindrops 来跟踪已推送到数组的雨滴数量。在 draw 函数中,我添加了一个 if 语句,仅在 numRaindrops 小于 25 时才将新雨滴推送到数组。一旦 numRaindrops 达到 25,则不会向数组添加新雨滴。

© www.soinside.com 2019 - 2024. All rights reserved.