【项目】改进版桌球小游戏1

桌球小游戏是初学Java的同学可能会遇到的一个趣味小项目。寓教于乐,增加了学习编程的乐趣。这里笔者在最基本的桌球小游戏中,改进思路是通过引入一个可输入的变量speed来存放速度变量并设置速度变量随着时间递减,再采用for循环当速度变量小于0时就中止循环到达小球不再移动的效果,改进内容如下:

1可以输入桌球初始速度

2桌球速度随着时间递减,最后会停留到某处。

效果如下:

 

 【项目】改进版桌球小游戏1_第1张图片

 

 

//改进版本桌球游戏
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();
	}
}

  

你可能感兴趣的:(【项目】改进版桌球小游戏1)