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

古いフレームをクリアすることはありませんしているので、あなたが描くものは、単にあなたが前に描いたものは何でもの上に描画されます。

古いフレームを消去する場合は、draw()機能の最初の行にbackground()関数の呼び出しを追加します。

詳細については、the referenceまたはthis tutorialのアニメーションのProcessing(免責事項:私はそのチュートリアルを書いています)で見つけることができます。

関連する問題