这项任务必须是波普艺术,我已经决定使用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();
}
答案 0 :(得分:0)
首先,此代码不会运行,因为您在调用setup()
函数之前使用了Processing函数。请尝试将代码发布为我们可以复制并粘贴以运行的MCVE。
无论如何,为了实现你的目标,你的pokeBall()
函数需要接受指定球位置的参数,你需要根据这些坐标绘制球。您现在几乎使用XBALL
和YBALL
变量执行此操作,但您需要将这些变量转换为参数并从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);