Function 处理函数和参数

Function 处理函数和参数,function,parameters,processing,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, BallYL

我很难想出一个程序,用一个函数在屏幕上画一个球,该函数包含参数中的值,然后使它以恒定的速度移动。你可以看出我是个傻瓜,不太懂参数。 这是我到目前为止所拥有的

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);
}

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

ellipse(200, 200, ballDiam, ballRadius);
background(211, 211, 211);
为此:

ellipse(xPos, yPos, ballDiam, ballRadius);
此外,你的惯例有点不妥当。我会在顶部定义
BallXLoc
,以及
BallYLoc
,这样椭圆就有了一个起点。此外,您应该将变量的类型定义为
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);
}
我添加了这行代码:

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