2015-02-12 2 views
1

У меня возникли проблемы с приложением программы, которая рисует мяч на экране, используя функцию, включающую значения в параметре, а затем перемещение с постоянной скоростью. Как вы можете сказать, я ноб и не совсем понимаю параметры. Вот что я до сих пор.Функция и параметры обработки

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

Кроме того, ваша конвенция поодаль. Я бы определил 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); 
} 

Я добавил эту строку кода:

background(211, 211, 211); 

Чтобы предотвратить круг от создания пути. Фон по умолчанию для обработки: светло-серый (211, 211, 211), и каждый раз фон очищается, а эллипс перерисовывается с новой позицией. Вы увидите движение эллипса с постоянной скоростью по экрану.

 Смежные вопросы

  • Нет связанных вопросов^_^