走迷宫游戏设计_第1页
走迷宫游戏设计_第2页
走迷宫游戏设计_第3页
走迷宫游戏设计_第4页
走迷宫游戏设计_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

10/12学号1408010106《面对对象程序设计》课程设计报告题目:“走迷宫”游戏制作专业:计算机科学与技术班级:计算机科学与技术14(1)姓名:陈晚露指导老师:樊郁徽成果:计算机学院2016年5月28日日期改为2016日期改为2016年4月22日名目TOC\o"1-3"\h\u119141、设计目的与要求 1144371.1设计目的 166701.2设计要求 183451.3实现功能 1201811.4界面设计 1289872、开发平台和技术 2273082.1Java语言 252512.2GreenFoot 3164982.3环境配置 372153、模块简略实现和主要动画触发 3914、总结 4240985、参考文献: 452746、附录: 5“走迷宫”游戏制作1、设计目的与要求1.1设计目的娴熟掌握数据结构的基本算法,提高算法设计与分析能力;基本掌握面对对象设计基本思路和方法;(3)利用所学的基本知识和技能,解决简洁的程序设计问题;(4)提高同学的科技论文写作能力;1.2设计要求课程设计前必须依据课程设计题目专心筹备实验源程序及调试时所需的数据;(2)要求接受简明、严格的问题描述,设计求解算法;数据结构选用得当,程序结构合理;(4)程序简明易懂,多运用输出提示,程序运行正确;(5)对设计进行总结和商量;1.3实现功能用户可以通过单击走迷宫小人图像,开头默认模式的走迷宫游戏。当小人图像开头移动,计时开头。(2)当用户想重新开头游戏时,可以点击窗口下方的【重新开头】按钮,重新开头游戏。(3)用户可以单击菜单栏“选择迷宫”菜单,选择不同模式的迷宫游戏。(4)用户还可以选择菜单栏“选择墙和路的图像(JPG,GIF)”菜单,从电脑中选取自己喜爱的图片作为墙和路的图像进行游戏。1.4界面设计(1)编制一个求解迷宫通路的图形界面演示程序。(2)设置一个可以任意设置障碍,删除障碍的迷宫。并求出迷宫的一条通路(3)依据用户界面提示,可以使用事先设定的迷宫也可以使用自定义的迷宫。在着迷宫同路的过程中,需将查找的过程演示出来,并且在最后时,需要标记出查找成功的一条路径。图下方要有序号和标题图下方要有序号和标题2、开发平台和技术2.1Java语言java语言的流行除了由于它能够编制嵌入HTML文件中的Applet外,还在于Java语言本身的面对对象、简洁、平台无关性、平安性、多线程等特点java语言的结构与编写方式,与c++语言类似,因此学习Java语言,不仅要了解Java语言特点,同时还要有程序设计基础和面对对象的概念。java语言的特点如下:

java语言的特点一:简洁、高效

Java语言的特点二:面对对象

Java语言的特点三:平台无关性

Java语言的特点四:交互式特性

Java语言的特点五:多线程机制Java语言的特点六:动态的内存管理机制Java语言的特点七:平安性2.2GreenFootGreenfoot[1]是针对那些想让自己生疏如何使用Java的人而设计的,是一个功能完整的开发环境,可以使用Java便利地编写游戏和进行模拟。它还可以被用来作为Java语言的教程,以及设计2D小游戏,可以有用于全部年龄段的用户,而不仅仅是初学者。2.3环境配置JDKersion:2.3.0(版本)及Greenfoot的安装模块简略实现和主要动画触发在设计走迷宫小游戏时,编写了6个JAVA源文件:MazeWindow.java、MazePoint.java、WallOrRoad.java、Maze.java、PersonInMaze.java、HandleMove.java1、PersonInMaze.java此类继承了JTextField类,当鼠标指向小人图像时会有提示信息“单击我,然后按键盘方向键”。猎取走迷宫者的小人图像。2、MazePoint.java该类猎取MazePoint对象的坐标值,并返回。3、WallOrRoad.java此类继承了JPanel类,JPanel是一般轻量级容器,在此容器上定义了迷宫图形。4、Maze.java

Maze类对JLayeredPane进行了继承,JLayeredPane位容器添加了深度,允许组件在需要时相互重叠。Integer

对象指定容器中每个组件的深度,其中编号较高的组件位于其他组件之上。5、HandleMove.javaHandleMove类不仅对JPanel类进行了继承,还改写了keyPressed(KeyEvente)和actionPerformed(ActionEvente),实现了KeyListener和ActionListener两个接口,对鼠标和键盘添加了监听器,使鼠标和键盘可以完成相应操作。MazeWindow.java此处6点的序号修改为(1)此处6点的序号修改为(1)…..,请依次修改MazeWindow是本游戏程序的主类,在此类中对菜单和菜单项进行了设计。4、总结“走迷宫”游戏的基本功能都已实现,在此程序中各类间反复的关联和依靠关系让类与类之间的关系简单,稍有不明白程序就无法连续下去。但是该游戏仅仅对几个简洁的迷宫游戏进行了设计,没有实现平常的通关模式的设计,这是此游戏应该改进的地方。通过这次“走迷宫”游戏的设计让我明白了理论与实践相结合的重要性,只有理论知识是远远不够的,只有把所学的理论知识与实践结合起来,从理论中得出结论,才能真正的提高自己的水命,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说是困难重重,并且还发现了自己的很多不足之处,对以前所学过的知识理解得不够深刻、透彻,掌握的不够坚固。同时在这次的设计中也有小小的体验了一下做项目的感受。我完成了这次JAVA课程设计,不过这只是我学习路上的驿站。我信任我在将来的学习中会记住从本次课程设计中所学到的东西,并将它用到将来的学习中去。5、参考文献:[1]王元珍,韩宗芬.IBM-PC宏汇编语言程序设计[M].其次版.华中理工高校出版社,2005

此文献与本课程设计无关,建议删除此文献与本课程设计无关,建议删除[2]叶核亚.数据结构[M].Java版第2版.北京:电子工业出版社,2009[3]耿祥义,张跃平.Java基础教程[M].第2版.北京:清华高校出版社,2009[4]刘小晶.数据结构[M].Java语言描述.北京:清华高校出版社,20096、附录:public

class

PersonInMaze

extends

JTextField{

MazePoint

point;

Toolkit

tool;

PersonInMaze(){

tool=getToolkit();//获得工具包

setEditable(false);//不行见

setBorder(null);//无边框

setOpaque(false);//非透明的

setToolTipText("单击我,然后按键盘方向键");}publicvoidsetAtMazePoint(MazePointp){point=p;}publicMazePointgetAtMazePoint(){returnpoint;}publicvoidpaintComponent(Graphicsg){super.paintComponent(g);intw=getBounds().width;inth=getBounds().height;Imageimage=tool.getImage("person.gif");//获得image图像g.drawImage(image,0,0,w,h,this);//绘制image图像。}}publicclassMazePoint{intx,y;publicMazePoint(intx,inty){this.x=x;this.y=y;}publicintgetX(){returnx;}publicintgetY(){returny;}publicbooleanequals(MazePointp){if(p.getX()==this.getX()&&p.getY()==this.getY())/*如果MazePoint的对象p的x、y值和上面返回的x、y值相同,则返回true,否则返回false*/returntrue;elsereturnfalse;}}publicclassWallOrRoadextendsJPanel{booleanisRoad,isWall,isEnter,isOut;MazePointpoint;;Toolkittool;WallOrRoad(){tool=getToolkit();}publicvoidsetIsEnter(booleanboo){isEnter=boo;if(isEnter==true)add(newJLabel("入口"));//定义迷宫的入口}PublicbooleangetIsEnter(){returnisEnter;}publicvoidsetIsOut(booleanboo){isOut=boo;if(isOut==true)add(newJLabel("出口"));//定义迷宫的出口}publicbooleangetIsOut(){returnisOut;}publicvoidsetIsRoad(booleanboo){isRoad=boo;if(isRoad==true){setBorder(null);//置此组件的边框,无}}publicbooleangetIsRoad(){returnisRoad;}publicvoidsetIsWall(booleanboo){isWall=boo;if(isWall==true)setBorder(newSoftBevelBorder(BevelBorder.RAISED));/*public

Maze(){

setLayout(null);

wallImage=new

File("wall.jpg");

roadImage=new

File("road.jpg");

person=new

PersonInMaze();

handleMove=new

HandleMove();

handleMove.initSpendTime();

person.addKeyListener(handleMove);

setLayer(person,JLayeredPane.DRAG_LAYER);

}publicclassMazeWindowextendsJFrameimplementsActionListener{Mazemaze;JMenuBarbar;//声明菜单条对象JMenumenuChoice,menuImage;//声明菜单对象JMenuItemwallImage,roadImage,defaultImage;//声明菜单项对象;JButtonrenew;//声明按钮对象MazeWindow(){wallImageFile("wall.jpg");roadImageFile("road.jpg");bar=newJMenuBar();//创建菜单条对象menuChoice=newJMenu("选择迷宫");File(".");Filefile[]=dir.listFiles(new(){publicbooleanaccept(name){returnname.endsWith("maze");}});for(inti=0;i<){JMenuItemitem=newJMenuItem(file[i].getName());item.addActionListener(this);menuChoice.add(item);}maze[0].getName());init();menuImage=newJMenu("选择墙和路的图像(JPG,GIF)");//创建菜单对象wallImage=newJMenuItem("墙的图像");//创建菜单项对象roadImage=newJMenuItem("路的图像");

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论