2016-11-09 84 views
1

試圖在加工中製作簡單的彈跳球程序,但無法消除重影的球。任何幫助,將不勝感激,這裏是我的代碼有:加工中的彈跳球

float g=-9.81; 
float k=0.2; // Spring constant 
float m=0.25; // Mass kg 
float dt=0.01; // Time step 50ms 

float vy=0;  // Initial velocity 
float y=0.95; // Initial position 

float t=0;  // Initial time 

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

void draw() 
{ 
vy=vy+(g-((k/m)*vy))*dt; 
if(y<0) 
{ 
vy=-vy; 
} 

y=y+(vy*dt); 
t=t+dt; 

float sx=map(0.5,0,1,0,width); 
float sy=map(y,0,1,height-1,0); 
fill(255,0,0); 
ellipse(sx,sy,10,10); 
} 
+0

請注意,您不需要刪除整個以前的球;只是不再需要的那一點。否則你的圖像會閃爍。我用機器碼在Z80芯片上寫了一個12歲的男孩,併爲此付出了代價;-) – Bathsheba

回答

2

你永遠清除舊的框架,所以任何你畫僅僅是畫在什麼你以前畫的畫上面。

如果要清除舊幀,請將函數background()作爲draw()函數的第一行添加。

更多信息可以在the referencethis tutorial關於動畫處理(免責聲明:我寫了教程)。