文章目录

  这是我学期开始那会儿自学java学习到UI界面编程的时候跟着老高码的一个小游戏。主要涉及到了awt的一些知识以及游戏里常见的碰撞检测,以及如何用键盘来控制飞机的运动。其中为了规避屏闪加入了经典的双缓冲重绘机制。

  双缓冲机制是其中比较有意思的部分,具体代码如下:

1
2
3
4
5
6
7
8
9
10
//双缓冲实现 swing可以自动实现,awt需要手动添加
Image ImageBuffer=null;
Graphics GraImage=null;
public void update(Graphics g){
ImageBuffer = createImage(this.getWidth(), this.getHeight()); //创建图形缓冲区
GraImage = ImageBuffer.getGraphics(); //获取图形缓冲区的图形上下文
paint(GraImage); //用paint方法中编写的绘图过程对图形缓冲区绘图
GraImage.dispose(); //释放图形上下文资源
g.drawImage(ImageBuffer, 0, 0, this); //将图形缓冲区绘制到屏幕上
}

  老样子,来几张不堪入目的UI界面图:

  开始时会从中心点向各个方向随机产生若干个子弹,子弹碰到屏幕的边框会反弹,控制键盘上下左右可以移动小飞机,同时按下两个方向键可以进行斜线方向的移动,子弹碰撞到飞机会爆炸,游戏结束,显示存活时间并且得出等级。

  这张是挂掉后的效果,这里只是做个演示,其实我最高玩到了一分钟,自认为很屌了,哈哈。

  逗比,为毛你死的那么快,2333.

  源码地址

  Gitcafe:https://gitcafe.com/jrhu05/planeGame

  欢迎有爱clone!


如果觉得文章很有趣或对你带来了帮助,欢迎请我喝杯咖啡哦~

文章目录