2015-02-12 81 views
1

我遇到了一个程序,该程序使用一个包含参数值的函数在屏幕上画出一个球,然后以一个恒定的速度移动。你可以告诉我是一个noob,并不太了解参数。 这是我到目前为止。处理函数和参数

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

你的逻辑是有点过。您在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),每次清除背景并用新位置重新绘制椭圆。您将看到椭圆在屏幕上以恒定速率移动。