Java飞机大战游戏设计与实现

本项目使用Java Swing实现了一个飞机大战游戏,包含10个关卡,玩家可通过键盘和鼠标控制战机,挑战逐渐增强的敌人和Boss。游戏集成了碰撞效果、升级系统、无敌模式等特色功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 概述

1.1 项目简介

本次Java课程设计是做一个飞机大战的游戏,应用Swing编程,完成一个界面简洁流畅、游戏方式简单,玩起来易于上手的桌面游戏。该飞机大战项目运用的主要技术即是Swing编程中的一些窗口类库、事件监听以及贴图技术。

1.2 实训功能说明

1.2.1 基本功能

通过键盘,方向键和ASWD键可控制战机的位置,空格键和鼠标左键发射子弹

界面中敌机出现的位置,以及敌机和Boss炸弹的发射均为随机的,敌机与敌机炸弹、Boss炸弹均具有一定的速度,且随着关卡难度的增大,数量和速度均随着关卡数增加而增加

对于随机产生的敌机和敌机炸弹,若超过矩形区域,则释放该对象

添加碰撞效果,包括战机子弹打中敌机爆炸、敌机炸弹打中战机爆炸、战机与敌机相撞爆炸、战机子弹与敌机炸弹相撞爆炸、战机子弹打中Boss、战机与Boss碰撞以及战机吃到血包七种碰撞效果。且碰撞发生后子弹、炸弹、血包均消失,战机生命值减一,敌机和Boss生命值减少当前战机炮弹威力的生命值,若敌机或Boss生命值归零,则删除敌机或Boss

血包:随着关卡游戏进程的进行,会出现一定量的血包供战机补给生命值,血包会在客户区矩形框内运动,10秒后消失;若战机在10秒内吃到血包,则会增加5点生命值知道生命值上限

每关中战机有三条命,每条命10点生命值,生命使用完后,会进入GameOver界面显示得分数,并提供重新开始游戏和退出功能

游戏提供10个关卡,每个关卡需要打死相应关卡的敌机数量才能进入Boss模式,打败Boss之后将会进入下一关。10关通关后,显示通关界面,并提供重新开始游戏和退出游戏的功能选项

暂停功能:游戏进行过程中按下Z键可进入暂停模式,再按Z则返回游戏

无敌模式:游戏进行过程中按下Y键可进入无敌模式,再按Y则返回正常游戏。该模式下战机生命值不会减少,可供测试使用

魔法值:游戏进行过程中,战机魔法值会随着时间递增到上限10,魔法值供战机道具功能的使用,过一个关卡魔法值不清零

战机大招:当战机魔法值为10满状态时,按下X键消耗所有魔法值可发动大招,对屏幕中的敌机进行清屏,Boss扣50点血量

防护罩:当魔法值不为0时,按下C键可打开防护罩道具,该状态下战机处于无敌状态,不会损失生命值,但魔法值会随着防护罩开启慢慢降低

战机升级功能:战机子弹单个威力为1,在魔法值不为0时,按下V键开启升级战机模式,战机图标变为动画,子弹威力变成两倍。(若同时开启防护罩和战机升级,则魔法值递减速度翻倍)

1.2.2 附加功能

为游戏界面每个关卡添加了滚动背景图片和背景音乐,并在敌机发送炮弹、战机发射子弹、战机击中敌机、敌机击中战机、战机敌机相撞、敌机战机子弹相撞、战机吃到血包、战机大招、战机升级、战机防护罩、游戏结束时均添加了音效

为美化游戏界面,采用了一部分全民飞机大战图标,并添加了爆炸动画和升级战机动画特效,背景音乐采用微信飞机大战背景音乐和相关特效音效

为游戏设置了不同的关卡,每个关卡难度不同,敌机与敌机炸弹的速度随着关卡增大而加快,进入第五关以后敌机从上下方均会随机出现,且随机发射炸弹

前五关卡敌机从上方飞出,速度一定,战机每打掉一架敌机则增加一分,当战机得分超过该关卡所需分数(和关卡数相关)则可进入Boss模式,打败Boss进入下一关;进入第六关以后,敌机分别从上下两方飞出。随着关卡数增加,敌机数量增加,速度增快,敌机炮弹数量和速度也相应增加,进入Boss所需分数增加,Boss生命值和火力也随着关卡数的增加而增加,游戏难度陡然直升

游戏界面中显示当前状态下的关卡数、当前命数、当前得分、战机血条、战机魔法条、无敌模式提醒和战机道具提醒,Boss模式下还有Boss血条

增加了鼠标控制战机位置这一效果,战绩的位置随着鼠标的移动而移动,并且点击鼠标左键可使得战机发射子弹

进入游戏先进入欢迎界面,欢迎界面中显示游戏使用说明,点击鼠标左键和空格键开始游戏。游戏过程中战机命数使用完、通关均有相应界面进行提醒,用户可选择重新开始游戏或退出游戏

点击下载源码

17010799-544f5bb8bf7b272a.png
基于Java飞机大战游戏主要需要我飞机和敌飞机,还有子弹,特殊nPC,开始背景,结束背景,以及背景音乐。我飞机可以随意移动,敌飞机无规律出现。游戏玩家通过鼠标移动控制飞机移动,我飞机游戏开始时就一直能发射子弹,当我子弹碰到敌飞机时,敌飞机消失。当玩家飞机碰到敌子弹时,生命值减一,直到玩家飞机生命值为一时,游戏结束。基本模块包括:游戏状态控制功能模块、游戏难度的调整模块、游戏界面画功能模块、玩家游戏控制功能模块等。本系统结构如下: (1)游戏状态控制功能模块:游戏的状态控制包括运行及结束游戏,首先进入游戏的开始页面,在游戏进行时,玩家必须躲避或者击落敌飞机,玩家飞机的生命值降低为0的时候游 戏就会结束,弹出游戏结束界面 (2)游戏难度的调整模块:玩家玩的时间越长游戏的难度越高,敌飞机的数量越多、敌飞机出现的频率越高,玩家保证飞机的存活的难度越高,操作难度相应也高。 (3)游戏界面画功能模块:左上角会显示玩家飞机当前生命值,游戏时间,当前分数,其他地用来输出玩家对我飞机的控制飞机的动作显示 (4)玩家游戏控制功能模块: 玩家可以通过控制鼠标或者键盘来控制飞机(Hero airplane)的移动
基于Java飞机大战游戏设计实现设计软件源码+word毕业论文文档。基于Java飞机大战游戏主要需要我飞机和敌飞机,还有子弹,特殊nPC,开始背景,结束背景,以及背景音乐。我飞机可以随意移动,敌飞机无规律出现。游戏玩家通过鼠标移动控制飞机移动,我飞机游戏开始时就一直能发射子弹,当我子弹碰到敌飞机时,敌飞机消失。当玩家飞机碰到敌子弹时,生命值减一,直到玩家飞机生命值为一时,游戏结束。基本模块包括:游戏状态控制功能模块、游戏难度的调整模块、游戏界面画功能模块、玩家游戏控制功能模块等。本系统结构如下: (1)游戏状态控制功能模块:游戏的状态控制包括运行及结束游戏,首先进入游戏的开始页面,在游戏进行时,玩家必须躲避或者击落敌飞机,玩家飞机的生命值降低为0的时候游 戏就会结束,弹出游戏结束界面 (2)游戏难度的调整模块:玩家玩的时间越长游戏的难度越高,敌飞机的数量越多、敌飞机出现的频率越高,玩家保证飞机的存活的难度越高,操作难度相应也高。 (3)游戏界面画功能模块:左上角会显示玩家飞机当前生命值,游戏时间,当前分数,其他地用来输出玩家对我飞机的控制飞机的动作显示 (4)玩家游戏控制功能模块: 玩家可以通过控制鼠标或者键盘来控制飞机(Hero airplane)的移动。 目 录 1 引言 1 1.1 项目背景 1 1. 2 国内外研究现状 3 1.3 项目主要工作 4 1.4 本文组织结构 6 2 开发平台开发技术 7 2. 1 IntelliJ IDEA简介 7 2. 2 IntelliJ IDEAEclipse 、MyEclipse的比较 8 2. 3 Java 10 3 可行性研究 13 3. 1 技术可行性 13 3. 2 经济可行性 13 3. 3 操作可行性 14 3. 4 用户使用可行性 14 3. 5 法律可行性 14 4 需求分析 15 4. 1 系统需求概述 16 4. 2 功能模块设计 17 4.2.1 游戏状态控制功能模块 17 4.2.2 游戏难度的调整模块 17 4.2.3 游戏界面画功能模块 17 4.2.4 玩家游戏控制功能模块 17 4. 3 游戏难点分析 18 4.3.1 图美化 18 4.3.2 多线程技术的实现 18 4.3.3 防碰撞问题的解决 18 4.3.4 动画的实现 18 5 飞机大战功能实现 19 5.1 模型图 19 5.2 软件功能模块 19 5.3 游戏首页的实现 20 5.3.1 界面实现 20 5.3.2 流程图 21 5.3.3 核心代码 22 5.4 游戏开始模块的实现 24 5.4.1 界面实现 24 5.4.2 流程图 25 5.4.3 核心代码 25 5.5 发射子弹模块的实现 27 5.5.1 界面实现 27 5.5.2 流程图 28 5.5.3 核心代码 29 5.6 积分模块的实现 33 5.6.1 界面的实现 33 5.6.2 核心代码 34 5.7 防碰撞逻辑 37 5.7.1 核心代码 37 5.8 游戏操作的实现 39 5.8.1 核心代码 39 5.9 特殊NPC蜜蜂 41 6 系统测试 42 6.1 测试的定义及其重要性 43 6.1.1 测试的定义 43 6.1.2 测试的重要性 44 6.2 测试法 46 6.3 测试结果 50 7 结论 51 参考文献 52 致谢 54 外文文献 55 中文翻译 63 1 引言 1.1 项目背景 90后的我们,童年最开始接触电子游戏是在游戏厅,那时候的飞机大战游戏机前,往往人山人海,绚丽多彩的画面,带感操作让人沉醉不能自拔。再后来,珍珠港(Pearl Harbor),虎虎虎(Tora! Tora! Tora!)等空战电影中激烈的空战和飞机在天空中的英姿让我彻底爱上了空战,所以毕业设计我选择了飞机战斗有关——基于Java飞机大战游戏设计实现的毕业设计。 而选基于Java飞机大战游戏设计实现为题,是对大学期间学到知识的一次实践运用,也是对自己大学四年学习成果的一次检验。 柏拉图:“游戏是一切幼子生活和能力跳跃需要而产生的有意识的模拟活动。”亚里士多德给游戏的定义是:“游戏是劳作后的休息和消遣,本身并带有任何目的性的一种行为活动。”可以说,游戏是一种一直存在的社会现象,有了人类就有了游戏,人类游戏息息相关。游戏也随着人类的进步有了新的发展。 PC机刚开始普及的时候,游戏并不能被广泛接受。最主要的原因就是不能充分发挥PC机的性能,即游戏程序不能最大化使用PC机的硬件资源,导致PC机
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值