用Java实现一个台球小游戏

 今天心血来潮,就想着巩固Java中的常用知识体系。于是就抽空写了个台球小游戏就当练手巩固基础了,主要用到了Java的图形包,画板。继承,线程等知识点。话不多说代码如下:

package com.sanjiang.eric;

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 ballX = 100;
	double ballY = 100;
	
	//定义小球移动的弧度
	double degree = 3.14/3;//初始弧度60°
	
	//绘制窗口
	public void paint(Graphics graphics) {
		System.out.println("窗口被画了一次");
		graphics.drawImage(desk, 0, 0, null);//画出桌台
		graphics.drawImage(ball, (int)ballX, (int)ballY, null);//画出小球
		
		ballX = ballX + 10 * Math.cos(degree);
		ballY = ballY + 10 * Math.sin(degree);
		//小球上下移动 500是窗口高度,40是桌子的边框,30是小球的直径,另一个40是标题栏的高度
		if(ballY < 40 + 40 || ballY > 500 - 40 -30) {
			degree = -degree;
		}
		//小球左右移动
		if(ballX < 40 || ballX > 865 - 40 -30) {
			degree = 3.14-degree;
		}
		
		
	}
	
	//加载窗口
	void launchFrame() {
		setSize(865, 500);//设置长宽
		setLocation(50, 50);//设置坐标轴
		setVisible(true);//启用窗口
		
		//重画窗口,每秒画25次
		while(true) {
			repaint();
			try {
				Thread.sleep(40);//40ms,1s = 1000ms
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
	
	//main方法是程序执行的入口
	public static void main(String[] args) {
		System.out.println("第一个桌球游戏");
		BallGame2 ballGame = new BallGame2();
		ballGame.launchFrame();
	}
}

 

你可能感兴趣的:(基础复习,Java基础,Java小游戏)