2016-11-09 3 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

Обратите внимание, что вам не нужно удалять весь предыдущий шар; просто бит, который больше не требуется. В противном случае ваше изображение будет мерцать. Я написал что-то вроде 12-летнего мальчика на чипе Z80 в машинный код и заплатил за это ;-) – Bathsheba

ответ

2

Вы никогда не убирая старые кадры, так что вы рисовать просто нарисованы на вершине, что вы нарисовали ранее.

Если вы хотите удалить старые кадры, добавьте вызов функции background() в качестве первой строки в вашей функции draw().

Дополнительная информация может быть найдена в the reference или в this tutorial на анимации в процессе обработки (отказ от ответственности: я написал этот учебник).

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