2017-02-22 15 views
1

我是一位處理代碼的新手。我正在使用一個變量淡藍色變成深藍色,而且工作正常,但我想知道如何才能減慢它淡化的過程。(新手處理問)你如何減緩顏色的褪色?你如何阻止移動的物體?

另一個問題(希望人們不介意我在一個帖子上問兩個問題),我該如何在某個點停止移動?我有一個橢圓標記太陽。當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這樣它可以保存小數。

您可能還想查看the reference中的lerp()map()函數。

另一個問題(希望人們不介意我在一個帖子上問兩個問題),是我該如何在某個點停止移動?我有一個橢圓標記太陽。當x = 700時,我希望它停止。

未來,請每個帖子只提問一個問題。並嘗試爲每個問題放置一個MCVE,而不是張貼整個草圖。

但是,您可以使用if語句來執行此操作,該語句只在x小於700時遞增。就像這樣:

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

無恥的自我宣傳:我寫了一個教程使用if語句來創建加工提供here動畫。