桌球小游戏是初学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(); } }