桌球小遊戲是初學Java的同窗可能會遇到的一個趣味小項目。寓教於樂,增長了學習編程的樂趣。這裏筆者在最基本的桌球小遊戲中,改進思路是經過引入一個可輸入的變量speed來存放速度變量並設置速度變量隨着時間遞減,再採用for循環當速度變量小於0時就停止循環到達小球再也不移動的效果,改進內容以下:java
1能夠輸入桌球初始速度編程
2桌球速度隨着時間遞減,最後會停留到某處。學習
效果以下:blog
//改進版本桌球遊戲 import java.util.Scanner; import java.awt.*; import javax.swing.*; public class BallGame2 extends JFrame{ Image ball = Toolkit.getDefaultToolkit().getImage("images/ball.png"); Image desk = Toolkit.getDefaultToolkit().getImage("images/desk.jpg"); Scanner scan=new Scanner(System.in); //小球座標 double x=100; double y=100; boolean right = true; //輸入一個大於0的小球初試速度 double speed=scan.nextDouble(); //畫窗口的方法 public void paint(Graphics g) { System.out.println("窗口被畫了一次"); g.drawImage(desk, 0, 0, null); g.drawImage(ball,(int)x,(int)y,null); if(speed>0) { if(right) { x=x+speed; }else { x=x-speed; } if(x>856-70) { right=false; } if(x<60) { right=true; } } } //窗口加載 void launchFrame() { setSize(856,500); setLocation(100,100); setVisible(true); //重畫窗口 while(true) { repaint(); try { Thread.sleep(40); speed=speed-0.5; }catch(Exception e) { e.printStackTrace(); } } } //main方法是入口 public static void main(String[] args) { System.out.println("桌球小遊戲"); System.out.println("輸入一個大於0的小球初試速度"); BallGame2 game = new BallGame2(); game.launchFrame(); } }