零基础桌球小游戏

 (根据尚学堂课程学习制作,侵删)

1.桌球横向移动

import java.awt.*;
import javax.swing.*;

public class BallGame extends JFrame {
	
	Image ball=Toolkit.getDefaultToolkit().getImage("images/ball.png");
	Image desk=Toolkit.getDefaultToolkit().getImage("images/desk.jpg");
	
	double x = 100;	//小球的横坐标
	double y = 100;	//小球的纵坐标
	boolean right = true;	//方向
	
	//画窗口的方法
	public void paint(Graphics g){
		System.out.println("窗口被画了一次");
		g.drawImage(desk,0,0,null);
		g.drawImage(ball,(int)x,(int)y,null);
		
		
		if(right){
			x=x+10;
		}else{
			x=x-10;
		}
		
		if(x>856-40-30){	//856是窗口宽度,40是桌子边框宽度,30是小球直径
			right=false;
		}
		if(x<40){			//40是桌子边框宽度
			right=true;
		}
	}
	
	//窗口加载
	void launchFrame(){
		setSize(856,500);
		setLocation(50,50);
		setVisible(true);
		
		//重画窗口
		while(true){
			repaint();
			try{
				Thread.sleep(40);	//40ms
			}catch(Exception e){
				e.printStackTrace();
			}
			
		}
	}
			
	//main方法是程序执行的入口
	public static void main(String[] args){
		
		BallGame game = new BallGame();
		game.launchFrame();
	}
}

2.桌球自由移动

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");
	
	double x = 100;	//小球的横坐标
	double y = 100;	//小球的纵坐标
	
	double degree = 3.14/3;	//弧度,此处就是60度。
	
	//画窗口的方法
	public void paint(Graphics g){
		System.out.println("窗口被画了一次");
		g.drawImage(desk,0,0,null);
		g.drawImage(ball,(int)x,(int)y,null);
		
		x = x+10*Math.cos(degree);
		y = y+10*Math.sin(degree);
		
		if(y>500-40-40 || y<40+40){	//500是窗口高度,40是桌子边框,30是球的直径,最后一个40是标题栏的高度
			degree = -degree;
		}
		
		//碰到左右边界
		if(x<40 || x>856-40-30){
			degree = 3.14-degree;
		}
	}
	
	//窗口加载
	void launchFrame(){
		setSize(856,500);
		setLocation(50,50);
		setVisible(true);
		
		//重画窗口
		while(true){
			repaint();
			try{
				Thread.sleep(40);	//40ms
			}catch(Exception e){
				e.printStackTrace();
			}			
		}
	}
			
	//main方法是程序执行的入口
	public static void main(String[] args){
		
		BallGame2 game = new BallGame2();
		game.launchFrame();
	}
}

猜你喜欢

转载自blog.csdn.net/weixin_42148490/article/details/82632986