4.程序设计
贪吃蛇游戏各模块及程序流程有若干类实现,下面阐述各个类的设计与实现。
4.1GamePanel类
该类包含六个主要的功能方法,分别是:
(1)构造函数public paintComponrnt (),主要用来设置用户控制面。 (2)public void keyPressed()方法,主要用来对游戏的按键操作进
行处理。
(3)void drawFood() drawRocks()主要用来绘制游戏界面食物和石
头。
(4)public void drawfenshu ()方法主要用来改变积分器。 (5) public void drawPause()方法用来实现暂停 (6)void drawGameOver()方法用来控制游戏的开始界面。 4.2.Snake类
该类包含多个功能方法,分别是:
(1) 构造函数public Snake(),该方法主要用来初始化游戏界蛇
的位置及大小且给其一个初始方向。用一个LinkedList,用来保存蛇的每一节;在利用drawMe()方法遍历LinkedList中保存的节点来画出游戏界面中的蛇。
(2) public void move()方法主要用来改变蛇的运动方向,
首先判断游戏是否暂停,还有是否GameOver 跳出该方法,蛇不能移动否则先保存它的尾节点,在将其尾节点删除,获取其头节点的XY坐标,如果你同时按下2个按键其和为0则按原始方向移动,在获取到移动后XY坐标,将其加在蛇的头部
(3) public boolean eatRocks()方法使实现蛇吃石头的函数,首
先判断蛇身体的头节点是否和石头重合如果重合,去除蛇身体的
4
头节点,在再其尾节点出加一节身体,并设置Life为false。 (4) public boolean eatBody()方法实现蛇吃到自己的身体。 (5) public Boolean eatFood()方法实现蛇吃到食物
5.分析问题与解决方案
5.1 问题处理
问题一: 不能实现游戏中最高分数的存储与读取
使用.properties来存储其最高分数
在用msg()方法来实现其对应数据的读取与存储
问题二:蛇在吃掉食物时,画出其身体的方法 将先前去除的尾节点在重新加在其尾部 问题三:图形界面的覆盖
使用双缓冲技术:双缓冲技术在很多动画中被采用。主要
原理是创建一幅图像,将每一帧画入图像,然后将整个图像一次画到屏幕上去,将其原来的东西覆盖掉。
问题四:线程的使用
如何将其节点无限重画,及睡眠时间 使用死循环
问题五:实现键盘操控游戏
使用键盘监听器
5
6小结与体会
回顾这个设计过程,我学到了许多书本上没有学到的知识。通过这次自己制作的软件,丰富了自己的实践技能,扩展了本专业的知识面,使我受益非浅,同时也体验到了搞软件开发的困难度。在这次设计的同时,我又从中学到了许多东西。但由于我对这样的软件开发还只是一个开始,了解的不多,这其中或许还有很多的不足,有些模块做得不是很好,界面的设计及整体的布局还比较简单,没有突出特色出来,这也可能是我这个系统的不足之处,在这里也恳请各位老师能够对我的作品指明不足并加以改正。
总之,在这一次的课程设计过程中,我查阅了大量的资料,对Java有了一点初步的认识,对于软件工程这些辅助性的教材也巩固了不少,为我这次的课设提供了很大的帮助,锻炼了我的能力让我掌握了一门新的程序设计语言:java语言,系统地学习了数据库方面的知识,并更进一步提高了我在程序设计、调试方面的技巧。更重要的是,它还让我认识到了自己的不足,在编程方面,我仅仅是刚刚入门而已,以后的道路任重道远,需要我不断的丰富自己、充实自己,这样才能在程序设计方面有所收获。
6
参考文献(资料)
[1] 谢希仁. 计算机网络(第五版). 北京:电子工业出版社,2008 [2] 胡小强 计算机网络. 北京:北京邮电大学出版社2005
[3] 陈轶.姚晓昆编著.Java程序设计实验指导.北京:清华大学出版社,
2006
[4] 杨昭编著.二级Java语言程序设计教程.北京:中国水利水电出版社,
2006
[5] 赵文靖编著.Java程序设计基础与上机指导.北京:清华大学出版社,
2006
[6] 赵毅主编.跨平台程序设计语言——Java.西安:西安电子科技大学出
版社,2006
[7] 王路群.Java高级程序设计.北京:中国水利水电出版社,2006 [8] 雍俊海编著.Java程序设计习题集.北京:清华大学出版社,2006 [9] 朱福喜编著.Java语言习题与解析.北京:清华大学出版社,2006 [10] 吴其庆编著.Java程序设计实例教程.北京:冶金产业出版社,2006