“大鱼吃小鱼”课程设计 报告_第1页
“大鱼吃小鱼”课程设计 报告_第2页
“大鱼吃小鱼”课程设计 报告_第3页
“大鱼吃小鱼”课程设计 报告_第4页
“大鱼吃小鱼”课程设计 报告_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

1、计算机与信息工程系面向对彖程序设计课程设计报告学号12080202112013-2014学年第二学期面向对象程序设计课程设计报告网络工程12管蔚雄题目: 专业: 班级: 姓名: 指导教师: 成绩:大鱼吃小鱼网络工程徐宁计算机与信息工程系2014年6月6日目录第一章 设计的目的与要求21.1设计目的21.2设计要求21.3实现功能21.4界面设计2第二章开发平台与技术32.1java 语言32e2greenfoot42.3环境配置5第三章模块具体实现禾口主要动画触发7小结8参考文献8附录9计算机与信息工程系面向对象程序设计课程设计报告大鱼吃小鱼第一章设计目的与要求1.1设计目的通过用greenf

2、oot来设计“大鱼吃小鱼”这个游戏,来熟悉 并学会运用greenfoot这个软件的同时巩固我们专业课java知识。1.2设计要求1.熟悉GreenFoot平台;2 对游戏中所需类进行设计;3 写出源程序文件;4.对游戏进行调试和分析。1. 3实现功能敌方有三类鱼(鲨鱼、蓝鱼和小黄鱼),每一类鱼的对象出现后,在游戏中 处于随机自由移动状态,敌方大鱼能吃小鱼;主角为红鱼且红鱼只有一条,玩家 通过键盘方向键控制移动,红鱼有两级状态,初始时处于低级状态,只能吃黄鱼, 能被蓝鱼或鲨鱼吃掉。初级状态的红鱼经过重重险恶且吃掉一定数量的黄鱼升级 后,能吃黄鱼和蓝鱼,但还是能被鲨鱼吃。吃掉一定数量的鱼,则显示成

3、功信息,结束游戏;若红鱼被鲨鱼或蓝鱼吃掉, 则显示失败信息。1.4界面设计红鱼是主角,玩家通过键盘方向键控制移动,红鱼有两级状态:初级状态只 能吃小黄鱼,会被蓝鱼和鲨鱼吃掉;吃掉20条小黄鱼后回升级即长大,能吃掉 蓝鱼,但还是能被鲨鱼吃掉。红鱼升级后,吃黄鱼数量达到40,蓝鱼数量达到 20,显示成功信息,结束游戏;若红鱼被鲨鱼或蓝鱼吃掉,显示失败信息。敌方大鱼能吃小鱼,即鲨鱼吃蓝鱼和黄鱼,蓝鱼吃黄鱼。第二章开发平台和技术2. 1 Java 语言简单性:Java最初是为对家用电器进行集成控制而设计的一种语言,因此它必 须简单明了。Java语言的简单性主要体现在以下三个方面:Java的风格类似于C

4、+,但是Java摒弃了 C+中容易引发程序错误的地方,如 指针和内存管理。Java提供了丰富的类库。Java自身的基本系统所占用空间小于250KB (即编译器和解释器),它实现了垃 圾自动收集,简化了内存的管理工作。可靠性和安全性:Java不支持指针,这杜绝了内存的非法访问。Java的自动单元收集防止了内存丢失等动态内存分配导致的问题。Java解释器运行时实施检査,可以发现数组和宇符串访问的越界;Java提供了异 常处理机制,以便从错误处理任务恢复。Java通过自己的安全机制防止了病毒程序的产生和下载程序对本地系统的威胁 破坏。当Java字节码进进入解释器时,首先必须经过字节码校验器的检査,然

5、后 Java解释器将决定程序中类的内存布局,随后,类装载器负责把来自网络的类 装载到单独的内存区域。跨平台性:面向对象:把程序实现的每一个具体功能作为类,然后用类来构成对象。 优点是代码可重用、系统易扩展。多线程:通过使用多线程,程序设计者可以分别用不同的线程完成特定的行为, 提高系统的运行效率。分布性:分布式包括数据分布和操作分布。数据分布是指数据可以分散在网络的 不同主机上;操作分布是指把一个计算分散在不同主机上处理。它支持以上两种 分布性。对前者,Java提供了一个叫做URL的对象,利用这个对象,可以访问Internet 上的所有网络资源;对于后者,Java提供的基于流套接字的网络编程接

6、口,为 实现网络的应用和Web应用提供了方便。丰富的类库和API文档2.2 GreenFootGreenfoot是由肯特大学的Michael和Martin开发的一款游戏程序设计平 台,主要用于程序设计的辅助教学。它是一个功能完整的开发环境,可以方便地 编写游戏和进行游戏模拟。Greenfoot也可看做是一个二维图形程序框架和集成 开发环境的结合体,它支持面向对象程序设计的全部特性,特别适;合进行基于 组件的可视化编程。Greenfoot具备以卜几个特点:(1) 可视化程序设计界面(2) 游戏案例作为项目单元(3) 良好的社区支持2.3环境配置开发运行环境:JDK (Java Developme

7、nt Kit) + 文本编辑器(UltraEdit )JDK是java开发工具包,包括java类库、java编译器、java解释器、java 运行环境和java命令行工具。http:/www oracle. com/technetwork/java/javase/downloads/index html IDE:集成开发工具JCreator (Xinox)www. jcreator. comJBuilder (Borland)www. borland com/jbuiIder/Visual J+(Microsoft)VisualAge forJava(IBM)www-3 ibm com/sof

8、tware/vajava/about/index htmlNetBeanswww. netbeans orgEclipsehttp:/www eclipse org/downloadsJava SE Development Kit 7ufi1Yom muni McetM th Ofew iHnnmI tcmiM Mreement fat- i to oowmgd tht*oftwar*.you for accept mg the Oracle flinary Cod*foe Java S: you may nowdownload this sortwatvuProduct i r” D scr

9、ipt ionOowtiKMHlLinuc ARM yOiVT Horn Float abi67 F M |UklinuM irn vfp hVitMrgrLlHUt ARM90ft FIO41 Afil67MMB Klk-ZuM 4tnux4irm vtp nLlav.9Linut dk 7u51 nwiCMx xM.1 “oiiHgS84506Jnr.grSol arts .C4 (SVR424 53 MO曼 1k TuM WCUKif|.x644ftfZSolans.16 28MD |dk FuS1 &cjdk MUinw BtMSolans 9PARCea 19 MB llk ?m5T

10、 olwns |Mc4Ar.Q*$Ola4tS SPARC 6a mi (SVR423 94 MB |1k Zu&1nparcvO.tArSotans SPARCIfl 33 MB Klk /u51sotann S|xncvO.Utt.g/Windows EO04 MB曼 |dk-?u5i -windowflk45S0,ex4Windows lte Fu51JDK的安装安装:和一般应用程序相似,有向导指引。Java(TK) SE Development Kit 6 Update 5-自定义安装区自定义安装选择要安装的程期能-安装到:功能说明JavafTM) SE Deveopment Kit

11、6Update 5 包括专用JRE 6Update 5.这将需要300 MB的 硬盘驱动器空间.D:3avajok上一步下一步(LD a 辭着珈g癘険圖驚安装完如您牺使用控制面板冲的添如9环境变量的设置:Path使得系统可以在任何路径下识别java命令。Classpath 为 java 加载类(class or lib)路径,只有类在 classpath 中,java 命令才能识别。JDK的安装路径:C:Javajdkpath 路径为:C:Javajdkbinclasspath 路径为:.;C:JavajdklibGreenfoot 安装:Greenfoot软件直接在自己的pc机上安装即可用。

12、第三章模块具体实现和主要动画触发涉及的类及类名本实验中world类中有一个子类sea, actor类中有十个子类,分别是主角 类即红鱼类Redfish,黄鱼两个类yellowfishl与yellowfish2,蓝鱼两个类 bluefishl 与 bluefish2,鲨鱼类 shark,水泡类 blister, 一个计数器 Counter, 一个 Scoreboard, 一个 successo各类实现的效果sea类:添加了一个红鱼的对象即主角;计数器的两个对象分别是用于计数吃掉 黄鱼的数量和吃掉蓝鱼的数量;黄鱼与蓝鱼在世界里处于随机出现自由移动状 态;实现计数器加一的方法;游戏结束的方法;游戏成

13、功的方法;背景音乐循环 播放。Redfish类:红鱼设置四种状态,在构造方法中设置了其初始状态,然后通过if 判断语句来限制它的状态;在act方法中设置了关联键盘向左移游戏动作;吃黄 鱼蓝鱼动作,具体实现通过if语句控制;鱼升级及游戏成功也是在act方法中 用if语句来限定。yellowfishl与yellowfish2类:黄鱼在边界消失。bluefishl与bluefish2类:蓝鱼在边界消失;在其act方法里设置了吃黄鱼, 通过if语句,并调用sea类的getCount ()方法,其数值小于等于20情况下 可以吃红鱼。shark类:鲨鱼在边界消失;在act方法中设置了吃黄鱼,蓝鱼,红鱼,并

14、且当 吃到红鱼,游戏结束,调用sea类的gameover方法。blister类:水泡在边界消失。 ScoreBoard与success类:主要是绘制分数界面背景。Counter类:用于计数的类。小结此次课程设计,使我更扎实的掌握了本学期专业课java知识。当然,设计 过程中遇到了一些困难和问题,实在想不出来的问同学或请教老师,终于游逆而 解。课程设计体现出自己综合运用知识的能力,体会了学以致用、突出自己劳动 成果的喜悦心情,从中发现自己平时学习的不足和薄弱之处。实践出真知,通过亲自设计,使我们掌握的知识不再是是纸上谈兵。说实话, 本次课程设计花了不少时间,时间主要花在游戏设计即代码上,游戏做好

15、后,感 觉所花时间是值得的,个人对自己设计游戏较满意,虽然不是做得那么精致,还 存在些许需要改进的地方,我想以后有机会继续完善它。我认为,在这次课程设计中,不仅培养了独立思考、动手操作的能力,在各 种其它能力上也都有了提高。更重耍的是,在实验中,我学会了很多学习的方法。 而这是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、 实践,再学习、再实践。这对于我们的将来也有很大的帮助。以后,不管有多苦, 我想我们都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。就像中国提倡 的艰苦奋斗一样,我们都可以在实验结束之后变的更加成熟,会面对需要面对的 事情。此次设计也让我明白了思路即出路,

16、有什么不懂不明白的地方要及时请教 或上网查询,只要认真钻研,动脑思考,动手实践,就没有弄不懂的知识。参考文献:Greenfoot官方网站;Java程序设计教程(牛晓太主编)。附录:(部分代码)sea 类:import greenfoot.*;public class sea extends WorldCounter mycounter;Counter mycounterl;GreenfootSound music; public seaOsuper (800, 600, 1);addObject(new Redfish 0,400, 300);mycou nt er=new Cou nt er

17、 (吃掉的 yellowfish 数量:“); mycounterl=new Counter (z,吃掉的 blue 数量:“); addObject(mycounter, 100, 20);addObject(mycounterl, 300, 20); music=new Greenf oot Sound (z,jus tin bieber - mis tleto e. mp3);public void act () music. playLoop ();if(Greenfoot. getRandomNumber (100)3)addObject(new yellowfishl(), 0,

18、Greenfoot, getRandomNumber(600); addObject(new yellowfish2(), 800, Greenfoot. getRandomNumber (600);if(Greenfoot. getRandomNumber (100)20 ) setlmdge(oldR) ;else setlmage(smallR) ; move(5) ;if(Greenfoot. isKeyDown(left)if (sea) getWorld (). getCount () 20 ) 计算机与信息工程系面向对象程序设计课程设计报告setlmage(oldL) ;else

19、 setlmage(smallL) ; move (-5);if(Greenfoot. isKeyDown(up)setLocation (getX (), getY () -5);if(Greenfoot. isKeyDown(dowrT)setLocation (getX(), getY () +5);if (sea)getWorld(). getCount ()20 )if (ge tl mage () =smallL) setlmage(oldL) ;if (getImage()=smallR) setlmage(oldR) ;getbluefish 0;getyellowfish();if (sea) getWorld (). getCount () 40& (sea) getWorld (). getCount 1 () 20) Green foot, sto p();(sea) get World (). music, stop ();(sea) getWorld (). gameWin ();public void getyellowfishOyellowfishlyellowl=(yellowfishl)getOnelntersectingObject(yellowfishl. class); yellowfish2yellow2=(

温馨提示

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

评论

0/150

提交评论