桌球小游戏(java)编程

桌球游戏小项目

项目需求:

桌球在球桌中按照一定线路和角度移动,遇到边框会自动弹回。如图: 桌球游戏的运行结果
项目中用到的两个小图片,如下:

在这里插入图片描述
在这里插入图片描述
开发步骤:
目标:创建项目、创建窗口。
创建项目并拷贝图片:
在项目名MyPro01上单击右键,在菜单中依次选择new—Folder,创建一个名称是images的文件夹,并复制两 张图片到该目录下。并在src下创建类BallGame.java。

实现小球沿着任意角度飞行,会用到初中学习的三角函数

import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import javax.swing.JFrame;
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-30||y<40+40){
			degree = -degree;
		}

		if(x>856-40-30||x<0+40){
			degree = 3.14-degree;
		}
	}
	
	//窗口加载
	void launchFrame(){
		setSize(856,500);  //宽和高分别为300
		setLocation(50,50); //窗口左上架的xy坐标
		setVisible(true);
		
		//重画窗口
		while(true){
			repaint();//重画
			try {
				Thread.sleep(40);//40ms
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}	
		}
	}
	//main方法是程序执行的入口    
	public static void main(String[] args){
		System.out.println("开始编程,实现游戏功能");
		BallGame2 game = new BallGame2();
		game.launchFrame();
	}
}

最后的效果运行图,如下:
在这里插入图片描述

参考文章来源:http://www.sxt.cn/Java_jQuery_in_action/History_Direction.html

发布了31 篇原创文章 · 获赞 20 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/souhanben5159/article/details/87915951