2014-10-10 51 views
2

當試圖使矩形在框架中來回移動時,會留下覆蓋背景的黑色矩形。處理rect語句留下其他黑色矩形的軌跡

這裏是我的代碼:

float x = 0; 
float y = 0; 
float speed = 1; 

void setup() { 
    size(500,500); 
    background(255); 
} 

void draw() { 
    move(); 
    display(); 
} 

void move() { 
    x = x + speed; 
    if (x > width) { 
    x = 0; 
    } 
} 

void display() { 
    rect(x,y,30,10); 
} 

現在我恨,因爲它幾乎是完全相同的代碼,在例子。 編輯:我不想要它留下的黑色。現在做一些研究..

+0

那麼你的問題是什麼?你想要的行爲是什麼? – worldofjr 2014-10-10 01:18:41

+0

我不想要它留下的黑色矩形 – ExZya 2014-10-10 01:20:52

回答

2

爲避免你的三角形的尾隨,你需要在重繪三角形之前重繪你的背景,否則它只會在頂部繪製另一個三角形。

您應該添加;

background(255); 

draw()方法move()display()之前。

希望這會有所幫助。

+0

哇感謝的人。 – ExZya 2014-10-10 02:10:36

+0

@ExZya如果解決了您的問題,請您將答案標記爲已接受。 :) – 2014-10-10 17:32:42

0

在處理void setup()僅在草圖開始時調用一次。這就是爲什麼你要在其中定義畫布的大小。 (因爲畫布側不變)

另一方面void draw()不斷運行。因此,程序運行時更改的任何活動內容都需要在其中。

float x = 0; 
float y = 0; 
float speed = 1; 

void setup() { 
    size(500,500); 

} 

void draw() { 
    background(255); 
    move(); 
    display(); 
} 

void move() { 
    x = x + speed; 
    if (x > width) { 
    x = 0; 
    } 
} 

void display() { 
    rect(x,y,30,10); 
}