处理功能和参数

时间:2015-02-12 06:01:39

标签: function parameters processing

我无法想出一个程序,该程序使用包含参数值的函数在屏幕上绘制球,然后以恒定速度移动。你可以告诉我,我是一个菜鸟,并不太了解参数。 这是我到目前为止所拥有的。

float BallXLoc;
float BallYLoc;

float ballDiam = 40;
float ballRadius = 40;
float xSpeed = 1;

void setup() {
size(400, 400);
}

void draw() {
  drawBall(BallXLoc, BallYLoc);
  BallXLoc = BallXLoc + xSpeed;
}

void drawBall(float xPos, float yPos) {
  ellipse(200, 200, ballDiam, ballRadius);
}

1 个答案:

答案 0 :(得分:1)

你的逻辑有点偏差。您在drawBall()函数中传递的参数应该在函数中实际用于定位椭圆。 替换这行代码:

ellipse(200, 200, ballDiam, ballRadius);

有了这个:

ellipse(xPos, yPos, ballDiam, ballRadius);

此外,您的约定有点偏。我会在顶部定义BallXLocBallYLoc,因此您的椭圆有一个起点。此外,您应该将变量的类型定义为ints,因为它们是整数。 你会有这个:

int BallXLoc = 100;
int BallYLoc = 100;

int ballDiam = 40;
int ballRadius = 40;
int xSpeed = 1;

void setup() {
size(400, 400);
}

void draw() {
  background(211, 211, 211);
  drawBall(BallXLoc, BallYLoc);
  BallXLoc = BallXLoc + xSpeed;
}

void drawBall(int xPos, int yPos) {
  ellipse(xPos, yPos, ballDiam, ballRadius);
}

我添加了这行代码:

background(211, 211, 211);

防止圆圈形成通路。处理的默认背景是浅灰色(211,211,211),每次清除背景并重新绘制椭圆并使用新位置。您将看到椭圆在屏幕上以恒定速率移动。