- 1、本文档共71页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
课程设计报告
贪吃蛇系统的
设计与实现
系 名:
专 业:
学号 姓名 任务 122011124 肖宝函 122011031 髙嘉豪 122011042 洪淑洲
指导教师: 薄 宏
二○一 年 月关键词:,
目录
第1章 可行性分析 5
1.1 经济可行性 5
1.2 技术可行性 5
第2章 需求分析 6
2.1游戏的介绍 6
2.2游戏开发的可行性 6
2.3设计目的 6
2.4游戏需求 7
2.4.1游戏界面需求 7
2.4.2游戏形状需求 7
2.4.3键盘事件处理 7
2.4.4显示需求 7
2.4.5接口控制 7
2.4.6环境介绍 8
第3章 功能设计 9
3.1 游戏的流程图 9
3.2游戏主界面的开发 9
3.3 绘制蛇身 10
3.4创建初始“蛇”及“蛇”的移动 11
3.5 吃掉食物,蛇身增长 11
3.6随机产生食物 12
3.7键盘事件处理 12
3.8 判断游戏结束 14
第4章 游戏测试与发布 16
4.1游戏运行的效果图 16
4.2 测试结果 17
第5章 自我评价和总结 18
5.1遇到的问题及解决办法 18
5.2 总结 18
参考资料 19
附加源代码 19
第1章 可行性分析
1.1经济可行性
游戏开发至今已经有30多年,在这个短暂的时期里,随着硬件的水平的提高。游戏开发新技术层出不穷,经典游戏比比皆是,游戏这个名称一直存在于每个人的日常生活中。因此,游戏对于现代人的成长历程,绝对是一个不可或缺的重要角色.而从技术方面来看,现在的java技术也融入了手机中。这些都为开发的这款贪吃蛇游戏提供了条件。
1.2技术可行性
本次设计我将主要运用java语言来完成。Java语言是一种跨平台,适合于分布式计算环境的面向对象编程语言,用Java写的应用程序不用修改就可在不同的软硬件平台上运行。?
????由于Java主要用于网络应用程序开发,因此对安全性有较高的要求。如果没有安全保证,用户从网络下载程序执行就非常危险。Java通过自己的安全机制防止了病毒程序的产生和下载程序对本地系统的威胁破坏。
第2章 需求分析
2.1游戏的介绍
游戏的名称叫“贪吃蛇”,节:一条蛇可以看成有许多正方形的“小格子”拼凑成,我把它称作节。节是蛇身上最小的单位。??段:当许多节连成一条直线,我称它为段。贪吃蛇只有一段,如果它拐弯就变成两段。??链表:用来保存每一段的状态,链表的元素单位是段。且链表的最后一个元素表示蛇的头部段。??坐标系:MIDP中的坐标以左上角那点为(0,0),向右则x递增,向下则y递增。?操作系统:Microsoft Windows XP程序语言:Java 2
开 发 包:Java(TM) 2 Standard Edition (5.0)? ? ? ?Sun Micro. J2ME ? Wireless Tool Kit 2.2IDE: ? ?Eclipse 3.01
3.2游戏主界面的开发
屏幕的背景用白色,由于屏幕高比宽长,所以取以宽为边长的矩形区域作为游戏区域,下面的部分作为分数、信息区域。
图一(游戏的主界面)
3.3 绘制蛇身
public void drawMe(Graphics g) {
for (Point p : body) {
/* 画蛇身体 */
g.setColor(bodyColor);
drawBody(g, p.x * Global.CELL_WIDTH, p.y * Global.CELL_HEIGHT,
Global.CELL_WIDTH, Global.CELL_HEIGHT);
}
/* 画蛇头 */
g.setColor(headColor);
drawHead(g, getHead().x * Global.CELL_WIDTH, getHead().y
* Global.CELL_HEIGHT, Global.CELL_WIDTH, Global.CELL_HEIGHT);
}
/**
* 画蛇头, 可以覆盖这个方法改变蛇头的显示
*
* @param g
* @param x
* 像素坐标 x
* @param y
* 像素坐标 y
* @param width
* 宽度(单位:像素)
* @param height
* 高度(单位:像素)
*/
public void drawHead(Graphics g, int x, int y, in
文档评论(0)