您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 基于java的贪吃蛇游戏设计课设
成绩评定表学生姓名Xxx班级学号Xxxxxxx专业通信工程课程设计题目基于Java的贪吃蛇游戏设计评语组长签字:成绩日期2014年12月5日课程设计任务书学院信息科学与工程学院专业通信工程学生姓名Xxx班级学号Xxxxx课程设计题目基于Java的贪吃蛇游戏设计实践教学要求与任务:1、熟悉Java的编程2、熟悉Java的运行环境3、用Java语言实现贪吃蛇游戏的设计4、运行、调试游戏程序5、对游戏程序进行结果验证及分析工作计划与进度安排:12月1日熟悉设计任务、查阅资料、进行原理分析及可行性论证12月2日~3日用Java语言实现贪吃蛇游戏的设计12月4日验收、答辩、提交报告指导教师:2014年12月4日专业负责人:2014年12月4日学院教学副院长:2014年12月4日目录1.Java语言特点..................错误!未定义书签。1.1Java简介..................错误!未定义书签。1.2应用环境..................................22.需求分析......................................32.1游戏开发可行性............................32.2设计目的..................................33.功能设计及源程序的主要部分....错误!未定义书签。3.1游戏流程图................................43.2功能的实现,类的实现及类层次................54.游戏运行及分析...............................164.1游戏运行结果.............................164.2测试结果.................................195.设计总结与体会...............................195.1遇到的问题及解决办法.....................195.2心得体会.................................196.参考文献.....................................211.Java语言的特点1.1Java简介SunMicrosystems公司在推出Java语言的同时,推出了一套开发工具JDK。Sun提供的基于字符模式的Java开发工具包JDK:Java开发工具(JDK)是许多Java专家最初使用的开发环境。Java是平台无关的语言是指用Java写的应用程序不用修改就可在不同的软硬件平台上运行。Java源程序编写借助于记事本,Editpuls,UltraEdit等第三方编辑工具。所有的Java文件编辑、编译、调试、解释运行都是通过使用字符命令来执行操作。JDK由一个标准类库和一组建立,测试及建立文档的Java实用程序组成。其核心JavaAPI是一些预定义的类库,开发人员需要用这些类来访问Java语言的功能。JDK是整个Java的核心,包括了Java运行环境(JavaRuntimeEnvirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。因此掌握JDK是学好Java的第一步。JDK里面是java类库和java的语言规范,它提供的是无论你用何种开发软件写java程序都必须用到的类库和java语言规范.没有jdk,你的java程序根本就不能用。最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK等等。其中IBM的JDK包含的JVM(JavaVirtualMachine)运行效率要比SunJDK包含的JVM高出许多。而专门运行在x86平台的Jrocket在服务端运行效率也要比SunJDK好很多。但不管怎么说,我们还是需要先把SunJDK掌握好。1.2.应用环境(1).操作系统:Solaris、WindowsNT、Windows95等(2).应用软件:jdk1.52.需求分析2.1游戏开发的可行性游戏开发至今已经有30多年,在这个短暂的时期里,随着硬件水平的提高,游戏开发新技术层出不穷,经典游戏比比皆是。游戏这个名称一直就存在于每个人的日常生活中,如猜拳游戏、猜谜游戏、大地游戏、球类游戏等,林林总总,不胜枚举,甚至于有些流行歌曲把人生也比喻为游戏,好比“一场游戏一场梦”。因此,游戏对于现代人的成长历程,绝对是一个不可或缺的重要角色。2.2设计目的综合运用在校期间所学理论知识和技能,设计开发贪吃蛇游戏,使自己熟悉应用系统的开发过程,培养独立思考能力,检验学习效果和动手能力,提高工程实践能力。2.3游戏需求给出1条小蛇和随机出1个食物当小蛇吃到食物时就加分。2.3.1游戏界面需求良好的用户界面,有分数显示。有存取档功能,并且可以暂停,还有“英雄榜”记录分数排名情况,并且可调节小蛇运动速度。2.3.2游戏形状(方块)需求良好的方块形状设计,绘制小蛇和食物,小蛇由几个方块组成,食物由1个方块组成。2.3.3键盘处理事件小蛇可通过键盘方向键(上、下、左、右键)进行向上、向下、向左、向右移动。2.3.4显示需求当小蛇吃掉几个食物后会变长,并且吃完食物时食物会消失,并立即随机生成1个新的食物。2.3.5接口控制本软件需求通过键盘进行操作,在Windows的操作系统下,利用键盘的上、下、左、右键对小蛇进行移动操作,要使用键盘的接口事件。3.功能设计及源程序的主要部分3.1游戏流程图图1游戏流程图3.2功能的实现,类的实现及类层次3.2.1游戏界面publicSnakeFrame(){setSize(width,height);//设置窗体大小setTitle(贪吃蛇);//标题SnakePanelpanel=newSnakePanel();//游戏面板add(panel);//将面板添加到窗体中setLocation(260,160);//设置窗体位置setVisible(true);setResizable(false);//禁用窗体最大化}3.2.2功能按钮publicSnakePanel(){//构造函数//添加功能按钮setLayout(null);add(startGame);add(stopGame);add(saveGame);add(listGame);add(newGame);add(exitGame);//设置位置startGame.setBounds(402,50,80,40);stopGame.setBounds(402,100,80,40);saveGame.setBounds(402,150,80,40);listGame.setBounds(402,200,80,40);newGame.setBounds(402,250,80,40);exitGame.setBounds(402,300,80,40);//添加监视器ButtonListenerbtnListener=newButtonListener();startGame.addActionListener(btnListener);stopGame.addActionListener(btnListener);saveGame.addActionListener(btnListener);listGame.addActionListener(btnListener);newGame.addActionListener(btnListener);exitGame.addActionListener(btnListener);//取消所有Button的焦点startGame.setFocusable(false);stopGame.setFocusable(false);saveGame.setFocusable(false);listGame.setFocusable(false);newGame.setFocusable(false);//速度Stringspeed[]={1,2,3,4,5,预设};combspeed=newJComboBox(speed);combspeed.setBorder(BorderFactory.createTitledBorder(速度));add(combspeed);//添加组合框combspeed.setBounds(402,340,80,46);comboBoxListenercomblistener=newcomboBoxListener();combspeed.addActionListener(comblistener);//添加监视器combspeed.setFocusable(false);//取消焦点initGame();//初始化游戏addKeyListener(newListener());//添加键盘按键监视器setFocusable(true);//将焦点设置在当前面板上以便通过键盘控制游戏thiswin=this;}3.2.3键盘监视器classListenerimplementsKeyListener{publicvoidkeyPressed(KeyEvente){intkey=e.getKeyCode();//获得键码if(key==KeyEvent.VK_LEFT&&direction!=2)direction=0;//左elseif(key==KeyEvent.VK_UP&&direction!=3)direction=1;//上elseif(key==KeyEvent.VK_RIGHT&&direction!=0)direction=2;//右elseif(key==KeyEvent.VK_DOWN&&direction!=1)direction=3;//下}publicvoidkeyReleased(KeyEvente){}@OverridepublicvoidkeyTyped(KeyEvente){}}publicvoidkeyPressed(KeyEvente){intkey=e.getKeyCode();//获得键码if(key==KeyEvent.VK_LEFT&&direction!=2)direction=0;//左elseif(key==KeyEvent.VK_UP&&direction!=3)direction=1;//上elseif(key==KeyEvent.VK_RIGHT&&direction!=0)direction=2;//右elseif(key==KeyEvent.VK_DOWN&&direction!=1)direction=3;//下}3.2.4蛇和食物的变化3.2.4.1蛇和食物的产生:publicvoiddrawSnake(Graphicsg){Graphics2Dg2d=(Graphics2D)g;for(inti=0;iarrayList.length;i++){for(intj=0;jarrayList[i].length;j++){if(arrayList[i][j]==1){//蛇身g.setColor(frontcolor);//蛇身颜色}elseif(arrayList[i][j]==2){//蛇头g.setColor(Color.RED);//蛇头颜色}elseif(arrayList[i][j]==3){//食物g.setColor(foodcolor);//食物颜色}if(arrayList[i][j]!=0){intcurx=border_left+i*10;intcury=border_top+j*10;g2d.draw(newRectangle2D.Double(cur
本文标题:基于java的贪吃蛇游戏设计课设
链接地址:https://www.777doc.com/doc-1904168 .html