# noob-games(早期的可执行文件位于根目录下的game.rar)
## 一、 开发过程
## 2. 实现方式
### 2.1 绘制游戏窗口
(1) 使用javax.swing.JPanel类绘制窗口
(2) 使用java.awt类获取资源组件并加入窗口来绘制游戏背景图片
(3) 使用线程和repaint方法绘制动态画面
### 2.2 绘制角色
(1) 创建Player类,定义角色基本属性(width、height、x、y、hp等)
(2) 使用java.awt类获取角色图片
(3) 设置drawself方法来绘制子弹
### 2.3 设置监听器
(1) 使用java.awt.event.KeyEvent类和java.awt.event.KeyListener类设置键盘监听器实现角色移动等功能
### 2.4 添加角色子弹
(1) 创建Bullet类,定义子弹基本属性(width、height、x、y等)
(2) 使用java.awt类获取子弹图片
(3) 设置drawself方法来绘制子弹
### 2.5 添加敌机
(1) 创建Enemy父类,定义敌机基本属性
(2) 使用java.awt类获取敌机图片
(3) 设置drawself方法来绘制敌机
### 2.6 添加道具
(1) 创建Item父类,定义道具基本属性
(2) 使用java.awt类获取道具图片
(3) 设置drawself方法来绘制道具
### 2.7 添加游戏分数
(1) 在MyPanel中使用java.awt类绘制游戏分数
### 2.8 添加游戏音乐、音效
(1) 导入JLayer包
(2) 使用JLayer类中的方法实现游戏背景音乐和游戏音效的添加
## 3. 如何检查系统功能
运行游戏,检查各项功能是否正常
## 二、 设计方案
### 1. 功能组成
大体将程序分为四个模块:
从上至下依次是:监听器模块、模型模块、线程模块、视窗模块
(1) 监听器模块:实现角色移动功能及主菜单开始按钮和游戏结束界面重来按钮功能
(2) 模型模块:玩家角色、敌机、子弹、敌机子弹、玩家炸弹、物品属性等定义,可通过更改其中对应参数,实现不同功能,如:一次发出子弹数量,子弹飞行轨迹、物品效果、玩家血量、玩家移动速度等
(3) 线程模块:分为绘制画面线程和游戏音乐音效线程两大类,绘制画面线程主要是控制对游戏背景、游戏角色、敌机、物品、子弹等图片的绘制,游戏音乐音效线程则是控制游戏背景音乐与游戏音效的播放等
(4) 视窗模块:绘制游戏角色、敌机、子弹、等模型模块中的模型,搭配线程模块中的绘制画面线程可实现动态画面,即游戏化
## 三、 技术讨论
### 1. 存在问题
(1) 玩家角色、敌机、子弹之间的碰撞问题。由于三者碰撞体积都为一个矩形,但由于三者又不一定都是矩形,故存在明明玩家角色与其余两者未接触但造成角色血量减少的较差的游戏体验。
(2) 因为存在碰撞问题,故调整了碰撞函数,但又出现新的BUG:角色存在多段扣血的情况,因此将子弹伤害降低为1,减少角色被秒杀的情况。
(3) 游戏性不高
### 2. 解决方法
(1) 问题1、2可设置角色无敌时间,即子弹命中角色后角色可无敌一段时间,无敌时间需大于碰撞函数检测时间,即在子弹移除之前角色应是无敌状态
(2) 游戏性问题可增加游戏关卡,游戏敌人种类,游戏道具种类,玩家角色攻击方式等,但实际情况是游戏素材不足,有心而无力。另外可增加新系统增加游戏性,如增加rougelike模式,即遗物系统,角色吃下后可有特殊的攻击方式或有趣的被动属性(如增加攻速或僚机攻击等)
没有合适的资源?快使用搜索试试~ 我知道了~
使用Java写的飞机大战小游戏.zip学习资料
共73个文件
png:33个
java:25个
mp3:4个
需积分: 5 0 下载量 53 浏览量
2024-11-26
21:24:16
上传
评论
收藏 4.24MB ZIP 举报
温馨提示
使用Java写的飞机大战小游戏.zip学习资料
资源推荐
资源详情
资源评论
收起资源包目录
使用Java写的飞机大战小游戏.zip (73个子文件)
projectcode1124
game.rar 1.31MB
WarPlane
lib
jl1.0.1.jar 103KB
.classpath 381B
.settings
org.eclipse.jdt.core.prefs 587B
src
com
wowowo
thread
DrawableThread.java 664B
GameSound.java 2KB
MusicThread.java 2KB
view
BaseFrame.java 2KB
MyPanel.java 10KB
MainFrame.java 310B
main.java 151B
model
Enemy002.java 2KB
Enemy002Bullet.java 2KB
Boomer.java 2KB
Item004.java 953B
Bullet.java 1KB
Item001.java 843B
EnemyBullet.java 1KB
Enemy004.java 3KB
Item003.java 847B
Item.java 1KB
Item002.java 795B
Enemy003.java 2KB
Enemy.java 2KB
Enemy003Bullet.java 2KB
Enemy001.java 545B
Player.java 3KB
listener
FrameMouseListener.java 884B
FrameKeyListener.java 5KB
bin
music
boom.mp3 42KB
getitem.mp3 13KB
bullet.wav 140KB
bgm.mp3 227KB
boom.wav 174KB
bullet.mp3 34KB
.gitignore 6B
Image
Explosion04.png 9KB
Explosion01.png 5KB
boomer2.png 6KB
boom1.png 22KB
Explosion06.png 12KB
Explosion02.png 6KB
HeroPlane.png 4KB
boom3.png 24KB
gamestart.png 24KB
enemy01.png 9KB
enemy03.png 4KB
05.png 543KB
end.png 28KB
02.png 546KB
SuperWeapon.png 30KB
04.png 350KB
gameover.png 19KB
addbullet.png 12KB
01.png 340KB
03.png 141KB
map.jpg 144KB
boomer1.png 7KB
boomer.png 7KB
Explosion05.png 11KB
enemy02.png 15KB
bullet.png 48KB
boom2.png 25KB
Explosion03.png 7KB
enemybullet02.png 4KB
enemy04.png 17KB
enemybullet.png 4KB
blood.png 24KB
star.png 4KB
Explosion07.png 12KB
.project 370B
.fatjar 341B
README.md 4KB
共 73 条
- 1
资源评论
龙年行大运
- 粉丝: 1269
- 资源: 3917
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 用于执行大规模对象检测和实例分割的轻量级视觉库.zip
- 用于小物体检测的 Tile(切片)YOLO 数据集.zip
- 用于实时对象检测的 YOLOv3 和 YOLOv3-Tiny 实现.zip
- 用于 YOLO 小物体检测和实例分割的 Python 库.zip
- 用于 NVIDIA Jetson 上 yolov5 推理的 Dockerfile.zip
- cefsharp131版本,支持Mp4,64位
- 用于 Autodistill 的 YOLOv8 目标模型插件.zip
- 生命太短暂,没有时间进行测试.zip
- 斐讯K2刷机包通用版本
- 此脚本在 Berkeley Deep Drive 数据集上执行 K-means 聚类,以找到适合 YOLOv3 的锚框 它最初有 9 个锚框,图像大小为 608x608 如有任何问题,请告诉我.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功