函数调用for循环

时间:2016-11-04 01:17:18

标签: javascript processing

这项任务必须是波普艺术,我已经决定使用pokeballs。我们必须使用2 for循环:一个用于顶行,一个用于底部并创建一个函数。我遇到的问题是如何在顶行创建另外2个pokeball(总共将有6个pokeballs:顶部3个,底部3个),使用函数调用时将是随机颜色。

var RANDCOL = random(0, 400);
var XBALL = 65;
var YBALL = 108;

//dividing tiles
fill(250, 0, 0);
rect(0, 0, 130, 200);
fill(0, 187, 255);
rect(131, 0, 137, 200);
fill(0, 0, 0);
rect(269, 0, 130, 200);
fill(167, 158, 235);
rect(0, 200, 131, 199);
fill(46, 184, 101);
rect(131, 200, 137, 199);
fill(255, 0, 0);
rect(269, 200, 130, 199);

//pokeball specifications
var pokeBall = function(x) {
    stroke(158, 214, 235);
    ellipse(XBALL, YBALL, 99, 97);
    fill(0, 0, 0);
    stroke(0, 0, 0);
    line(15, 109, 56, 109);
    line(116, 109, 72, 109);
    ellipse(64, 108, 19, 16);
};

//loop for top row
for(var i = 0; i < 3; i++) {
    var x = i * 134;
    fill(RANDCOL);
    pokeBall();
}

1 个答案:

答案 0 :(得分:0)

首先,此代码不会运行,因为您在调用setup()函数之前使用了Processing函数。请尝试将代码发布为我们可以复制并粘贴以运行的MCVE

无论如何,为了实现你的目标,你的pokeBall()函数需要接受指定球位置的参数,你需要根据这些坐标绘制球。您现在几乎使用XBALLYBALL变量执行此操作,但您需要将这些变量转换为参数并从for循环中传入你在描述。

这是一个例子。假设我有这个功能:

function drawBall(){
   ellipse(100, 150, 20, 20);
}

该函数始终在坐标100,150处绘制一个圆。我可以改为使用参数代替:

function drawBall(ballX, ballY){
   ellipse(ballX, ballY, 20, 20);
}

然后我可以调用该函数并传入参数以在多个位置绘制圆圈:

drawBall(100, 200);
drawBall(200, 300);
drawBall(60, 20);