- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
PINGDINGSHANUNIVERSITY
专业实训〔四〕
工程报告
题目:基于JAVA的吃豆豆游戏开发
院(系):软件学院
专业年级:10级
姓名:苏振鹏
学号:101530140
指导教师:黄淼
2012年6月1日
目录
TOC\o1-3\h\z\uPINGDINGSHANUNIVERSITY 0
1工程简介 2
1.1工程意义 2
1.2工程说明 2
1.3关键技术 3
2总体设计 3
2.1主类设计 3
2.2各个模块的设计 4
3详细设计与实现 6
3.1地图的刷新绘制 6
3.2地图路径与豆豆路径的生成 7
3.3碰撞检测代替的实现 9
3.4怪物自动路径的设置 10
3.5被怪物追到以及吃到豆豆的检测 12
4工程截图 13
4.1主界面 13
4.2游戏积分 14
4.3游戏失败 14
5工程说明 14
5.1游戏程序打包 14
6结论 15
1工程简介
1.1工程意义
实现小时候PC上经典游戏,吃豆子。练习JAVA根底技能。掌握图片绘制方法,刷新方法。以及多线程的使用,文件读取与操作,字符串的分析等诸多技能。完成课程设计。
1.2工程说明
吃豆豆游戏规那么介绍:黄色的是吃豆豆主角,你需要把画面内所有白色的小豆豆都吃掉,而同时又有数个各种颜色的怪物追杀。如果被怪物追上,代表游戏失败并结束。如果吃光了所有白色小豆豆,那么恭喜你,您过关了。
游戏操作:空格开始游戏,按上下左右键控制主角移动方向。
1.3关键技术
本工程采用JAVA编程语言进行开发。使用JFrame做窗体,Graphice做画笔绘制图形。其中关键技术包括:
1、画面的绘制与更新。
2、怪物自动行进路线的设计。
3、吃豆豆方向的控制。
4、豆豆被吃掉以及主角被怪物抓到的检测。
5、更新吃豆豆得到的分数。
6、地图的生成与制作
7、地图集的解析
8、碰撞检测的代替
2总体设计
2.1主类设计
主类
主类
界面类
主角类
豆豆类
怪物类
资源类
地图类
豆豆路径类
行走路径类
共包含8个类。分别是主类EatBean、界面类Frame、主角类Bean、豆豆类Food、怪物类Monster、资源类StaticValue、豆豆路径类MakeFood、行走路径类MakeMap
2.2各个模块的设计
Frame类:
继承JFrame类,在paint方法中,实现对界面的绘制,并将界面线绘制到缓存中,再绘制到界面上,防止出现刷新闪烁现象。地图直接采用背景图片,无须绘制方式。用了特殊的方法处理了与地图的碰撞处理。将在随后的详细设计中介绍。
实现KeyListener与Runnable接口。初始化声明主角、豆豆、怪物类。监听KeyListener中的keyPressed方法,获取键盘上VK_UP、下VK_DOWN、左VK_RIGHT、右VK_LEFT、空格VK_SPACE来开始游戏,并调用Bean类的控制方法来控制主角的上下左右的行动。Runnable接口中的run方法负责每30毫秒调用repaint方法重绘地图,刷界面。
addSoucre方法,当主角吃下一个豆豆的时候调用改方法。并判定是否吃完所有的豆豆,如果吃完所有豆豆,判断游戏获胜,停止怪物的移动。并在游戏界面中心显示youwin。
gameOver方法,当怪物追到主角的时候,调用该方法。判定游戏结束,显示youlose。
writeMap方法在程序中未被执行。是制作地图的时候需要使用的方法,以保存行走路径。
Bean类:
包含属性x,y,tx,ty,image,listPonit,listFood,makeMap,monsters等。实现局部属性的get方法。初始化中,获取怪物数组以及食物数组。
利用left、right、up、down来改变想x,y坐标来实现主角的移动。并讲值先赋予tx,ty临时坐标。检测tx,ty是否在行动路线坐标集中。如果存在,说明可以移动,那么将tx,ty赋予x,y。否那么不可移动,对tx,ty进行复原,即不做移动处理。主角将不能移动。
继承Runnable接口,在run方法中完成对吃食物已经被怪物追到的判断处理。因为3方都是在既定路线中行进。只需判断是否出现坐标重复既可,但是为了防止出现相邻都无事,进行泛判断。只要在一个很近的距离内
文档评论(0)