2017-02-22 16 views
1

Я новичок, который работает над обработкой кода. Я использую переменную, чтобы затухать светло-голубой в темно-синий цвет, и это работает нормально, но мне было интересно, как я могу замедлить процесс ее угасания.(Обработка новичка Q) Как вы замедляете исчезновение цветов? И как вы остановите движущийся объект?

Другой вопрос (надеюсь, что люди не возражают против того, чтобы я задавал два вопроса на одном посту), как я могу сделать остановку формы в определенной точке? У меня есть эллипс, обозначенный солнцем. Я бы хотел, чтобы он остановился, когда x = 700.

Вот мое кодирование:

float x = 0; 
float y = 0; 
float r = 0; 
int gb = 0; 

void setup() { 
    size(800, 600); 
    background(gb, gb, 255); 
    imageMode(CENTER); 
    noStroke(); 
} 

void draw() { 
    background(0, gb, 255); 
    gb++; 

    if (gb>50) { 
    //the sun 
    fill(243, 230, 0); 
    ellipse(x, 60, 75, 75); 
    fill(243, 230, 0, 80); 
    ellipse(x, 60, 90, 90); 
    x++; 
    } 

    fill(0, 255, 0); 
    rect(0, 380, 800, 450); 
} 
+0

Какой язык вы используете? –

ответ

0

мне было интересно, как я мог бы замедлить процесс его выцветания.

Заканчивать эту линию:

gb++; 

Здесь вы приращением (добавление 1 к) вашей gb переменной, которую вы используете, чтобы определить цвет. Чтобы замедлить изменение цвета, просто добавьте к нему меньшее значение. Что-то вроде этого:

gb = gb + .1; 

который может быть сокращен до:

gb += .1; 

Для этого, чтобы работать, вы должны изменить переменную gb быть float, чтобы он мог держать знаков после запятой.

Возможно, вы также захотите проверить функции lerp() и map() в the reference.

Другой вопрос (надеюсь, что люди не возражают против того, чтобы я задавал два вопроса на одном посту), как я могу сделать остановку формы в определенной точке? У меня есть эллипс, обозначенный солнцем. Я бы хотел, чтобы он остановился, когда x = 700.

В будущем, пожалуйста, задайте только один вопрос за сообщение. И попробуйте собрать MCVE для каждого вопроса, а не размещать весь свой эскиз.

Но вы можете сделать это с помощью инструкции if, которая только увеличивает x, если она меньше 700. Как это:

if(x < 700){ 
    x++; 
} 

Shameless самореклама: Я написал учебник по использованию if заявления для создания анимации в обработке доступных here.