学习JAVA.day04
--------------------------------飞机大战(一)----------------------------------
功能需求分析:
一.飞机大战游戏步骤:
1.开始界面(进入游戏,退出游戏,排名查询)
2.进入游戏界面
3.空格开始游戏,左右前后移动我的飞机,敌机随机生成,子弹按照一定速度打出
4.碰撞检测,判定游戏结束,记录游戏时间
5.游戏结束,选择重新开始or退回主界面
二.游戏类组成:
1.Images加载
2.敌机类(成员变量:位置信息,大小信息;子类:大飞机,中飞机,小飞机);
3.子弹类(成员变量:位置信息,大小信息);
4.敌机管理类(成员变量:敌机集合;方法:位置移动,效果展示,碰撞检测);
5.子弹管理类(成员变量:子弹集合;方法:位置移动,碰撞检测);
三.涉及知识点
继承,封装,多态;
-----------------------------------------------------------------------------------------
初步效果图像:
1.主程序
package gamepack;
import javax.swing.*;
import java.awt.*;
public class StartGame {
public static void main(String[] args) {
//1.构建窗体
JFrame jf = new JFrame();
//加窗体标题
jf.setTitle("Plane Wars");
//调用setBounds方法设置窗体的弹出位置,窗体大小
int screenWidth = Toolkit.getDefaultToolkit().getScreenSize().width;
int screenHeight = Toolkit.getDefaultToolkit().getScreenSize().height;
int jfWidth = 490;
int jfHeight = 720;
jf.setBounds((screenWidth - jfWidth) / 2, (screenHeight - jfHeight) / 2, jfWidth, jfHeight);
//将窗口设定为不可调节大小
jf.setResizable(false);
//窗口关闭的同时结束程序
jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
//2.创建一个面板
GamePanel gp=new GamePanel();
//将面板添加到窗体中
jf.add(gp);
//显示窗口
jf.setVisible(true);
}
}
2.面板绘制程序
package gamepack;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.util.Random