基本窗口绘制
AWT和Swing是Java中常用的GUI图形界面技术。
窗口的基本设置
this.setTitle(“XXX!”);
this.setVisible(true);
this.setSize(600, 600);
this.setLocation(500, 50);
以及如何正常关闭
this.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
懂得如何用paint()方法绘制图形和文本。
paint方法会画出整个窗口及内部内容,会被系统自动调用。
ImageIO实现图片加载:
使用GameUtil工具类来实现加载Images
使用多线程和内部类实现动画效果
定义重画窗口线程PaintThread内部类
双缓冲技术解决闪烁问题。
若窗口类继承自:java.swing.JFrame,则本身就解决了闪烁问题。
相关类的设计
GameObject类的设计
飞机类的设计
键盘控制
键盘控制原理:每个键盘有它对应的编号。
把键盘的操作与飞机的方向相联系。
设计炮弹类
炮弹任意角度飞行以及越界问题
可以用数组和容器产生多个炮弹
炮弹和飞机的碰撞检测
游戏中所有物体都可以抽象成“矩形”,可用矩形检测来实现碰撞检测。
Java的API中,提供了Rectangle类来表示矩形相关信息,并且可以用intersects()方法来判断矩形是否相交。
实现碰撞以后但是键盘的控制功能出现错误了
不知道哪里出了问题
用数组的轮播实现爆炸的效果