Java弹球游戏的基本实现(一)

之前做了弹球游戏,用了线程,以为自己懂了,但是做飞机大战的时候觉得有点乱,所以回过头来整理一下弹球游戏的做法:

一、做出界面并在界面上画出球

1.写一个主类显示界面,这个很简单可以直接跳过

2.给窗体添加鼠标监听,定义一个窗体鼠标监听器类,点击界面出现小球

public class BallListener extends MouseAdapter{

	private BallMain ballMain;
	private Graphics g;
	private int size=30;
	public BallListener(BallMain ballMain) {
		this.ballMain = ballMain;
	}
	public void mouseClicked(MouseEvent e) {
		if(g == null) {
			g = ballMain.getGraphics();//如果没有画笔,给窗体添加画笔
		}
		int x = e.getX();
		int y = e.getY();
		g.fillOval(x, y, size, size);
		System.out.println("点击");
	}
}

观看效果:
在这里插入图片描述

二、如何让小球运动起来

想要让小球运动起来其实很简单,只需要改变小球的坐标:

	for(int i=x,j=y;i<ballMain.getWidth() && j<ballMain.getHeight();i++,j++) {
		g.fillOval(i, j, size, size);
	}

但是这样小球会一下子全都画完,我们看到的效果是一条粗线,不是我们想要的效果
在这里插入图片描述
上面小球运动得太快了,还没看到,就已经出了边界,我们可以增加休眠sleep(),这样我们发现能够看到小球的运动轨迹,但是画出来还是一条线,而且不能再点击画出另一个球。针对画出的不是单一的球,我们可以进行轨迹的擦除,轨迹擦除可以利用背景颜色在原有的位置在画一个球将轨迹覆盖。
这里我总是晕,但是想清楚之后发现很简单,我们想着先画一个黑球,然后球移动的时候我们要把之前的球的印记擦除使用画背景颜色球的方法,我们在画黑球和画背

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值