1.团队名称、团队成员介绍

黄力强(组长)

带带带带...带佬

陈汉煜(组员)

划水.gif

2.Gitee部分

3.项目功能架构图与主要功能流程图

游戏流程图:

面向对象设计

包图:

uml(关键类):

4.项目运行截图

5.项目关键代码

鼠标监听:

package com.listener;

import java.awt.event.MouseEvent;

import java.awt.event.MouseListener;

import java.awt.event.MouseMotionListener;

import java.util.ArrayList;

import com.view.BFrame;

public class FrameMouseListener implements MouseMotionListener{

public BFrame bFrame;

@Override

public void mouseDragged(MouseEvent e) {

// TODO Auto-generated method stub

}

@Override

public void mouseMoved(MouseEvent e) {

// TODO Auto-generated method stub

//开始后鼠标操控

if(this.bFrame.nPanel.isStart == true)

{

this.bFrame.nPanel.plane.x=e.getX()-this.bFrame.nPanel.plane.width/2-5;

this.bFrame.nPanel.plane.y=e.getY()-this.bFrame.nPanel.plane.height/2-15;

}

//死亡后按钮按压反馈

if(this.bFrame.nPanel.isDead == true)

{

if((e.getX()>67&&e.getX()<405&&e.getY()>500&&e.getY()<606))

{

this.bFrame.nPanel.dg.ispress = true;

}

else

{

this.bFrame.nPanel.dg.ispress = false;

}

}

//System.out.println(e.getX()+" "+e.getY());

}

}

界面绘制线程(每隔几毫秒绘制一次画面):

package com.thread;

import com.view.BPanel;

public class DrawableTread extends Thread{

public BPanel bPanel;

public DrawableTread(BPanel bPanel)

{

this.bPanel = bPanel;

}

@Override

public void run()

{

while(true)

{

this.bPanel.repaint();

try {

this.currentThread().sleep(1);

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

}

界面设计(需要绘制什么,绘制间隔):

package com.view;

import java.awt.Color;

import java.awt.Font;

import java.awt.Graphics;

import java.awt.Image;

import java.awt.Toolkit;

import java.lang.reflect.InvocationTargetException;

import java.util.ArrayList;

import javax.swing.JPanel;

import com.model.Background;

import com.model.Bullet;

import com.model.DeadDialog;

import com.model.Enemy;

import com.model.Enemy01;

import com.model.Item;

import com.model.MenuImage;

import com.model.Plane;

import com.thread.DrawableTread;

import com.thread.MusicThread;

public class BPanel extends JPanel{

public Image background;

public Background back;

public int i = 0;

public int j = 0;

public int time = 0;

public int top = 0;

public int flag = 1;

public DrawableTread dwtread;

public MenuImage menu;

public DeadDialog dg;

public Plane plane;

public ArrayList bts = new ArrayList();

public ArrayList ens = new ArrayList();

public ArrayList its = new ArrayList();

/**所有敌机类型*/

public ArrayList ensType = new ArrayList();

public Boolean isStart = false;

public Boolean isDead = false;

public Boolean hasBullet = false;

public Boolean hasEnemy = false;

public BPanel()

{

this.dwtread = new DrawableTread(this);

this.menu = new MenuImage(this);

this.dg = new DeadDialog(this);

this.plane = new Plane(this);

this.back = new Background(this);

this.dwtread.start();

}

@Override

public void paintComponent(Graphics g)

{

super.paintComponent(g);

//界面时间

time++;

if(time == 10000)

{

time = 0;

}

//背景绘制

back.chooseType();

this.back.drawBack(g);

//界面动画

if(isStart==false)

{

this.menu.drawImage(g);

}

else if(isStart==true)

{

this.menu.drawImageBack(g);;

}

//绘制飞机

this.plane.chooseType();

this.plane.drawplane(g);

//子弹绘制

if(hasBullet == true)

{

if(time%100==0)

{

new MusicThread("Music/shoot.wav").start();

if(this.plane.mode == 1)

{

Bullet bt = new Bullet(this);

bt.width = 15;

bt.height = 65;

bt.x = this.plane.x+this.plane.width/2-bt.width/2;

bt.y = this.plane.y;

this.bts.add(bt);

}

else if(this.plane.mode == 2)

{

Bullet bt = new Bullet(this);

bt.width = 15;

bt.height = 65;

bt.x = this.plane.x+this.plane.width/4-bt.width/2+5;

bt.y = this.plane.y;

this.bts.add(bt);

Bullet bt1 = new Bullet(this);

bt1.width = 15;

bt1.height = 65;

bt1.x = this.plane.x+this.plane.width*3/4-bt.width/2-5;

bt1.y = this.plane.y;

this.bts.add(bt1);

}

else if(this.plane.mode == 3)

{

Bullet bt = new Bullet(this);

bt.width = 15;

bt.height = 65;

bt.x = this.plane.x+this.plane.width/2-bt.width/2;

bt.y = this.plane.y;

this.bts.add(bt);

Bullet bt1 = new Bullet(this);

bt1.x = this.plane.x+this.plane.width/4-bt.width/2+2;

Bullet bt2 = new Bullet(this);

bt2.x = this.plane.x+this.plane.width*3/4-bt.width/2-2;

bt1.y =bt2.y = bt.y+20;

bt1.width =bt2.width= 15;

bt1.height = bt2.height = 65;

this.bts.add(bt1);

this.bts.add(bt2);

}

else if(this.plane.mode == 4)

{

Bullet bt = new Bullet(this);

bt.choose = 2;

bt.width = 10;

bt.height = 20;

bt.x = this.plane.x+this.plane.width/2-bt.width/2;

bt.y = this.plane.y;

this.bts.add(bt);

}

else if(this.plane.mode == 5)

{

Bullet bt = new Bullet(this);

bt.choose = 2;

bt.width = 10;

bt.height = 20;

bt.x = this.plane.x+this.plane.width/2-bt.width/2;

bt.y = this.plane.y;

this.bts.add(bt);

Bullet bt1 = new Bullet(this);

bt1.x = bt.x-10;

Bullet bt2 = new Bullet(this);

bt1.choose = bt2.choose = 2;

bt2.x = bt.x+10;

bt1.y =bt2.y = bt.y+10;

bt1.width =bt2.width= 10;

bt1.height = bt2.height = 20;

this.bts.add(bt1);

this.bts.add(bt2);

}

else if(this.plane.mode == 6)

{

Bullet bt = new Bullet(this);

bt.choose = 2;

bt.width = 10;

bt.height = 20;

bt.x = this.plane.x+this.plane.width/2-bt.width/2;

bt.y = this.plane.y;

this.bts.add(bt);

Bullet bt1 = new Bullet(this);

bt1.x = bt.x-10;

Bullet bt2 = new Bullet(this);

bt1.choose = bt2.choose = 2;

bt2.x = bt.x+10;

bt1.y =bt2.y = bt.y+10;

bt1.width =bt2.width= 10;

bt1.height = bt2.height = 20;

this.bts.add(bt1);

this.bts.add(bt2);

Bullet bt3 = new Bullet(this);

bt3.x = bt.x-20;

Bullet bt4 = new Bullet(this);

bt3.choose = bt4.choose = 2;

bt4.x = bt.x+20;

bt3.y =bt4.y = bt.y+20;

bt3.width =bt4.width= 10;

bt3.height = bt4.height = 20;

this.bts.add(bt3);

this.bts.add(bt4);

}

else if(this.plane.mode == 7)

{

Bullet bt = new Bullet(this);

bt.choose = 3;

bt.width = 10;

bt.height = 45;

bt.x = this.plane.x+this.plane.width/2-bt.width/2;

bt.y = this.plane.y;

this.bts.add(bt);

}

else if(this.plane.mode == 8)

{

Bullet bt = new Bullet(this);

bt.choose = 3;

bt.width = 11;

bt.height = 65;

bt.x = this.plane.x+this.plane.width/2-bt.width/2;

bt.y = this.plane.y;

this.bts.add(bt);

}

else if(this.plane.mode == 9)

{

Bullet bt = new Bullet(this);

bt.choose = 3;

bt.width = 11;

bt.height = 100;

bt.x = this.plane.x+this.plane.width/4;

bt.y = this.plane.y;

this.bts.add(bt);

Bullet bt1 = new Bullet(this);

bt1.choose = 3;

bt1.width = 11;

bt1.height = 100;

bt1.x = this.plane.x+this.plane.width*3/4-bt1.width;

bt1.y = this.plane.y;

this.bts.add(bt1);

}

else if(this.plane.mode == 10)

{

Bullet bt = new Bullet(this);

bt.choose = 4;

bt.width = 17;

bt.height = 22;

bt.x = this.plane.x+this.plane.width/2-bt.width/2;

bt.y = this.plane.y;

this.bts.add(bt);

}

else if(this.plane.mode == 11)

{

Bullet bt = new Bullet(this);

bt.choose = 4;

bt.width = 25;

bt.height = 32;

bt.x = this.plane.x+this.plane.width/2-bt.width/2;

bt.y = this.plane.y;

this.bts.add(bt);

}

else if(this.plane.mode == 12)

{

Bullet bt = new Bullet(this);

bt.choose = 4;

bt.width = 32;

bt.height = 40;

bt.x = this.plane.x+this.plane.width/2-bt.width/2;

bt.y = this.plane.y;

this.bts.add(bt);

Bullet bt1 = new Bullet(this);

bt1.choose = 4;

bt1.width = 17;

bt1.height = 22;

bt1.x = this.plane.x+this.plane.width/2-bt1.width/2;

bt1.y = this.plane.y+20;

this.bts.add(bt1);

}

else if(this.plane.mode == 13)

{

Bullet bt = new Bullet(this);

bt.choose = 5;

bt.width = 16;

bt.height = 99;

bt.x = this.plane.x+this.plane.width/2-bt.width/2;

bt.y = this.plane.y;

this.bts.add(bt);

}

else if(this.plane.mode == 14)

{

Bullet bt = new Bullet(this);

bt.choose = 6;

bt.width = 20;

bt.height = 99;

bt.x = this.plane.x+this.plane.width/2-bt.width/2;

bt.y = this.plane.y;

this.bts.add(bt);

}

else if(this.plane.mode == 15)

{

Bullet bt = new Bullet(this);

bt.choose = 6;

bt.width = 20;

bt.height = 99;

bt.x = this.plane.x+this.plane.width/2-bt.width/2;

bt.y = this.plane.y;

this.bts.add(bt);

Bullet bt1 = new Bullet(this);

bt1.choose = 5;

bt1.width = 10;

bt1.height = 99;

bt1.x = this.plane.x+this.plane.width/2-bt.width/2-10;

bt1.y = this.plane.y+10;

this.bts.add(bt1);

Bullet bt2 = new Bullet(this);

bt2.choose = 5;

bt2.width = 10;

bt2.height = 99;

bt2.x = this.plane.x+this.plane.width/2-bt.width/2+20;

bt2.y = this.plane.y+10;

this.bts.add(bt2);

}

else if(this.plane.mode == 16)

{

Bullet bt = new Bullet(this);

bt.choose = 7;

bt.width = 50;

bt.height = 50;

bt.x = this.plane.x+this.plane.width/2-bt.width/2;

bt.y = this.plane.y;

this.bts.add(bt);

}

else if(this.plane.mode == 17)

{

Bullet bt = new Bullet(this);

bt.choose = 7;

bt.width = 50;

bt.height = 50;

bt.x = this.plane.x+this.plane.width/2-bt.width/2;

bt.y = this.plane.y;

this.bts.add(bt);

Bullet bt1 = new Bullet(this);

bt1.choose = 7;

bt1.width = 30;

bt1.height = 30;

bt1.x = this.plane.x-30;

bt1.y = this.plane.y+20;

this.bts.add(bt1);

Bullet bt2 = new Bullet(this);

bt2.choose = 7;

bt2.width = 30;

bt2.height = 30;

bt2.x = this.plane.x+this.plane.width;

bt2.y = this.plane.y+20;

this.bts.add(bt2);

Bullet bt3 = new Bullet(this);

Bullet bt4 = new Bullet(this);

bt3.choose = bt4.choose = 2;

bt3.x = this.plane.x;

bt4.x = this.plane.x+this.plane.width-10;

bt3.y =bt4.y = bt.y+10;

bt3.width =bt4.width= 10;

bt3.height = bt4.height = 20;

this.bts.add(bt3);

this.bts.add(bt4);

}

else if(this.plane.mode == 18)

{

Bullet bt = new Bullet(this);

bt.choose = 1;

bt.width = 15;

bt.height = 65;

bt.x = this.plane.x+this.plane.width/2-bt.width/2;

bt.y = this.plane.y;

this.bts.add(bt);

Bullet bt1 = new Bullet(this);

bt1.x = this.plane.x+this.plane.width/4-bt.width/2+2;

Bullet bt2 = new Bullet(this);

bt2.x = this.plane.x+this.plane.width*3/4-bt.width/2-2;

bt2.choose = bt1.choose = 1;

bt1.y =bt2.y = bt.y+20;

bt1.width =bt2.width= 15;

bt1.height = bt2.height = 65;

this.bts.add(bt1);

this.bts.add(bt2);

Bullet bt3 = new Bullet(this);

bt3.x = this.plane.x+this.plane.width/4-bt.width/2-10;

Bullet bt4 = new Bullet(this);

bt4.x = this.plane.x+this.plane.width*3/4-bt.width/2+10;

bt3.choose = bt4.choose = 1;

bt3.y =bt4.y = bt.y+40;

bt3.width =bt4.width= 15;

bt3.height = bt4.height = 65;

this.bts.add(bt3);

this.bts.add(bt4);

}

}

for(j = 0;j

{

this.bts.get(j).drawBullet(g);

}

}

//创建敌机

if(hasEnemy == true)

{

if(time%500==0)

{

if(this.ensType.size()>0)

{

int i = (int)(Math.random()*this.ensType.size());

Enemy enemy = null;

try {

//反射创建

enemy = (Enemy)this.ensType.get(i).getConstructors()[0].newInstance(new Object[] {this});

} catch (InstantiationException | IllegalAccessException | IllegalArgumentException

| InvocationTargetException | SecurityException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

this.ens.add(enemy);

}

}

for(i = 0;i

{

this.ens.get(i).drawEnemy(g);

}

}

//绘制道具

if(isStart == true)

{

for(i = 0;i

{

this.its.get(i).drawItem(g);

}

}

if(isStart == true)

{

g.setColor(Color.WHITE);

g.setFont(new Font(" ",Font.BOLD, 20));

g.drawString("SCORE "+this.plane.count+" ",BFrame.pageWidth-150,30);

g.drawString("HP "+this.plane.hp+" ",50,30);

}

if(isDead == true)

{

this.dg.drawDialog(g);

}

}

}

6.代码扫描结果

时间紧迫没有细致完成

改进及感想

1.飞机在顶上的时候容易触发伪死亡bug

2.子弹没有做到按照每一个机型分配一个相应的子弹

3.还有多种飞机路径没有实现

4.单机游戏,未使用数据库,未能实现多人功能

5.背景循环音乐没有实现

java飞机大战流程图_JAVA课程设计——飞机大战(团队)相关推荐

  1. java飞机大战流程图_JAVA课程设计-飞机大战

    JAVA课程设计-飞机大战 1.团队名称.团队成员介绍 1.1 团队名称:做个飞机哦 1.2团队成员介绍: 余俊良(组长):编写博客.游戏主界面设计与实现.英雄机与子弹类的实现.场景设计 林祥涛:游戏 ...

  2. java植物大战僵尸思路_JAVA课程设计——植物大战僵尸(团队)

    #1.团队名称.团队成员介绍 ##团名:嗷嗷嗷嗷嗷 ###吴军霖(组长) 写得一手好代码也改得一手好bug 代码整洁好看源于强迫症 大概没有什么不会的东西叭 真正的王者段位 ###欧阳震霆(组员) 同 ...

  3. java设计五子棋_JAVA课程设计+五子棋(团队博客)

    JAVA课程设计 利用所学习的JAVA知识设计一个五子棋小游戏 1.团队名称.团队成员介绍(菜鸟三人组) 杨泽斌[组长]:201521123049 网络1512 叶文柠[组员]:20152112305 ...

  4. java飞机英雄大战代码ppt_Java课程设计--飞机大战

    #一. 团队介绍 成员姓名 任务分配 文**(组长) GUI.数据持久化 李** 背景音乐.博客撰写 #二. 参考代码 #三. 项目git地址 #四. 项目git提交记录截图,老师将重点考核 #五. ...

  5. java坦克大战互相碰撞_Java课程设计——坦克大战

    坦克大战--坦克类 一. 团队课程设计博客链接 二.个人负责模块和任务说明 模块:坦克类(玩家坦克类+电脑坦克类),代码整合 三.代码的提交记录截图 四.负责模块和任务详细说明 玩家坦克继承Visib ...

  6. java坦克大战总体功能设计_java课程设计——坦克大战

    ##一.团队课程设计博客链接: ##二.个人负责模块或任务说明: ###模块:GUI设计(游戏面板,登录面板,主窗体,显示关卡面板) ##三.自己的代码提交记录截图 ##四.自己负责模块或任务详细说明 ...

  7. java大鱼吃小鱼_Java课程设计——大鱼吃小鱼(团队)

    1.团队名称.团员介绍 团队名称:三枪加一炮 赖富烨(组长): Poison(毒药)类的设计: FishJpanel(游戏面板)类中的线程.部分方法的实现; 林阿强(组员): Login(简单登录界面 ...

  8. java课设 五子棋_Java课程设计 ————五子棋 (个人博客)

    JAVA课程设计 五子棋(博客个人版) •团队课程设计博客链接 •个人负责模块或任务说明 1.主框架类:设置棋盘窗体,颜色等 2.isWin方法:判断胜负 •自己的代码提交记录截图 •自己负责模块或任 ...

  9. java编程电话号码查询_java课程设计电话号码查询系统(15页)-原创力文档

    山东建筑大学 Java 课程设计报告 设计题目 电话号码查询系统 学生姓名黄瑜 学号 2010121187 专业班级信计101 指导教师 王文 1 1 1.设计目的 1.通过JAVA 课程设计,使大家 ...

最新文章

  1. 改变自己,让自己变得更好
  2. 【好资源】473页斯坦福数学基础:《应用线性代数》(附pdf和ppt下载)
  3. 现实交互动作和现实环境交互的魅力
  4. 幅度响应怎么计算_广播百科 频率响应
  5. zabbix监控mysql最简单的方法
  6. 某信道的波特率为1000Baud,若令其数据传输速率达到4kb/s,则一个信号码元所取的有效离散值个数为( )
  7. matlab imcrop 对应python函数_Python精讲Numpy基础,大牛笔记详细解释
  8. 怎么运行Typescript
  9. 开源硬件基金是如何运作的_如何在没有任何风险投资资金的情况下通过开源硬件赚钱
  10. Linux(五):Ubuntu 16.04 更改系统语言为简体中文(Chinese simplified)
  11. Java Servlet response
  12. codeforces 707D-(DFS+bitset)
  13. 服务器硬件工程师从入门到精通_硬件工程师必阅--如何“0基础”从入门到精通?(附CAD使用指南)...
  14. 元素的 “包含块” 如何确定?Containing Block
  15. oracle存储过程备份,Oracle存储过程(二)
  16. 软件模式、GRASP原则,GoF设计模式、设计模式分类、设计模式的优点。
  17. Apache Solr 建立 HBase 二级索引
  18. Mac M1系统安装pytorch
  19. 一切皆服务:以蓝天的角度看待云
  20. android仿微信发状态图片上传

热门文章

  1. 算法时间复杂度的符号
  2. OpenGL Texture 纹理
  3. Android wpa_supplicant源码分析---nl80211内核通信Generic Netlink
  4. 用银行家算法实现系统资源分配
  5. Could not open the requested SVN filesystem问题的可能原因
  6. electron隐藏默认菜单
  7. LINUX内核目录文件说明
  8. 金蝶云星空与聚水潭系统对接方案(金蝶主管库存)
  9. 【猫鼠游戏】一个半径为 1 的圆形水池圆心有一只老鼠,池边有一只猫。
  10. SAP 登录方式全收集