# dragon_war **Repository Path**: louxj/dragon_war ## Basic Information - **Project Name**: dragon_war - **Description**: 本项目是一款有趣的射击类游戏“龙龙大作战” - **Primary Language**: Java - **License**: BSD-3-Clause - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2018-10-08 - **Last Updated**: 2022-06-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 游戏说明 `dragon_war`是一款有趣的射击类游戏,中文名称为“龙龙大作战”。 ## 游戏简介 本项目是一款有趣的射击类游戏,游戏名为“龙龙大作战”。游戏主要有三 个界面:游戏开始前、游戏开始中、游戏结束。 ## 知识点 - 面向对象编程:封装、继承、多态 - 图形界面编程:Swing - 多线程编程 - 文件IO操作 - 基础的碰撞检测算法 ## 模块简介 - 界面;窗体、三张画布 - 精灵类:英雄、子弹、敌人 - 状态:准备,开始、结束 ## 版本历史 v1.0(2019-7-5) 1. 移动英雄,发射子弹,攻击怪兽,获得奖励。 2. 完善的开始、暂停和结束的游戏状态的划分。 ## 游戏界面 ### 游戏开始前界面 游戏开始前的界面,当按键盘的空格键时可以开始游戏。 ![游戏开始前界面](./images/game_start.png) ### 游戏开始中界面 游戏开始中的界面,用户可以通过按键盘 W、S、A、D 四个键控制英雄 的移动方向,通过移动鼠标而改变英雄的朝向。敌人随机地从各个方向 出 现,并且朝着英雄的方向移动,如果敌人碰撞到英雄,则游戏结束。英雄可以 一直发射子弹,子弹射击到敌人之后,敌人消失,并且会得到对应的分数。 ![游戏开始中界面](./images/game_running.png) ### 游戏结束界面 敌人碰撞到英雄,则游戏结束。当按键盘的空格键就可以重新开始游戏。 ![游戏结束界面](./images/game_over.png) ## 打包构建 通过如下指令来实现打包: ``` mvn assembly:assembly ``` 如果使用IDEA的话,可以通过自带的maven管理工具代替执行上面的命令。如下图所示,点击蓝色的部分。 ![assembly](./images/assembly.jpg) 然后通过执行如下指令运行程序: ``` cd target java -jar dragon_wars-jar-with-dependencies.jar ``` ## TODO 1. 支持更多种类的英雄、更多种类的子弹 2. 碰撞时出现爆炸的动画效果 3. 设计金币,英雄一个一边打击怪兽,一边挖金子 4. 设计炸弹:可以炸掉一堆敌人 5. 增加主动暂停游戏和提前结束游戏的功能。 6. 优化子弹和敌人的存储结构 7. 多线程优化 8. 优化得分显示的视觉效果 9. 增设关卡机制,逐步提升游戏难度 # 参考资料 1. [idea打包jar的多种方式](https://www.cnblogs.com/qifengshi/p/6036870.html) 2 [打Jar包](https://blog.csdn.net/dataiyangu/article/details/83502284)