0
我的程序是創建一個彈跳球,每上升和下降並上升30%向下......告訴球已停在休息位置。使用while循環彈跳球時,我需要減少每次跳躍30%的彈跳直到0,然後退出循環以避免無限循環
另外我想讓球逐漸減速,因爲它達到了最高點,隨着它回落到原來的位置逐漸加速。
所以我得到了第一部分的設置,我只是遇到了沒有製造無限循環的麻煩,並且在每次反彈之後減少上限30%。
當我寫這個問題時,我意識到,我需要在第一個while循環增加30%門楣時使y值達到400。
我該如何在兩個循環周圍重複一遍又一遍,沒有無限循環?
我很欣賞任何意見或建議!
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JApplet;
public class MY_Proj04 extends JApplet
{
int x, y;
Color Background;
public void init()
{
x = 100;
y = 400;
Background = getBackground();
}
public void paint(Graphics g)
{
// I tryed putting a while loop around the two following while loops and
// doing y = y * 30/100, I did this because the fill oval can't take a double
// as one of its parameters.
// 1st while loop
while(y >= 0) // Ball goes up to (0,100)
{
g.setColor(Background);
// fill the 500 by 500 square with it background color
// any old draw will be covered
g.fillRect(0, 0, 500, 500);
g.setColor(Color.red);
g.fillOval(x, y, 50, 50);
for(long i = 1; i < 5000000; i++); //speed of ball
y -=1;
}
// 2nd while loop
while(y <= 400) // ball goes down to 400,100
{
g.setColor(Background);
// fill the 500 by 500 square with it background color
// any old draw will be covered
g.fillRect(0, 0, 500, 500);
g.setColor(Color.red);
g.fillOval(x, y, 50, 50);
for(long i = 1; i < 5000000; i++); //speed of ball
y += 1;
}
}
}
看看[這個例子](http://stackoverflow.com/questions/19626338/japplet-creates-a-ball-that-bounces-and-gets -progressively-不太高在-java的/ 19626396#19626396) – MadProgrammer 2014-09-10 23:53:37