1、游戏程序设计报告上海xxxxx游戏程序设计题目: 小鸡历险记 学 号: 2008xxxx 姓 名: xxxx 院系: 计算机与信息工程学院 专业年级: 软件工程2008级 2011 年 6 月3 日 第一章 引言1.1 研究背景Green foot是针对那些想让自己熟悉如何使用JAVA的人而设计的,是一个功能完整的开发环境,可以使用Java方便地编写游戏和进行模拟。它还可以被用来作为Java语言的教程,以和设计网络游戏,可以实用于所有年龄段的用户,而不仅仅是初学者。最主要的是Green foot和 BlueJ系统一样,对任何用途都是免费的。这个系统以和它的文档可以重新发布而不需要任何费用 ,为
2、使用和学习JAVA的朋友提供了一个很好的环境。 Greenfoot可以认为是一个用java语言创建二维图形程序的框架和IDE的结合体,很适合初学者使用。Greenfoot支持java的全部特性,它特别适合练习可视化组件的编程。在Greenfoot中,对象的可视化和对象的交互性是关键。在Greenfoot的帮助之下一些软件游戏的开发变得很简单。我这次开发的是一款益智类的游戏。我希望通过自己的所学知识把它剖析开来,真正的了解它的本质和精髓。虽然我的编程能力不是很强,但是我有信心,在这次学习中我将从实践和实际的项目中提高自己的编程能力。第二章 需求分析与系统设计2.1 设计目的通过本学期对游戏程序的
3、研究,我们掌握了运用greenfoot来制作游戏的技术,虽然不娴熟还有待提高,但是一些技术含量较低的小游戏还是很容易让我们掌握的。此次游戏程序设计的目的,主要是通过greenfoot来制作游戏来更好的掌握java语言。通过greenfoot这个平台,熟习greenfoot在制作游戏方面所需要的技巧,将自己的游戏尽可能多的运用所学到的技术,并且将在平时java课程上面学到的知识付诸于实践,并从实际操作中,找出自己的不足之处进行弥补。每一次的课程设计,都是一次小小的软件工程,所以需要我们用百分百的的态度来对待。对于小一点的程序,我们一个人足以应付,但是这并不是说我们可以单独一个人为所欲为,其实质应
4、该是通过课程设计来锻炼自己独立自主的能力。而对于那些相对于麻烦的程序,就需要两个或者多个人来共同完成,这便需要他们的协作能力,这样对他们以后进入软件公司发展有了更多的基础。2.2 设计要求这次课程设计的要求并不像以往那么紧,老师让我们可以通过多个平台和系统来制作游戏,包括电脑游戏和手机游戏,从sun公司的手机开发平台WTK,到谷歌的安卓操作系统,只要我们喜好哪一个,并有能力完成就可以了。所以,这次我选择了greenfoot作为我游戏编程的平台。因为我平时学习的就是java语言,而greenfoot便是一个已Java语言为基础的游戏开发平台,所以,在编程的过程中不仅提高了效率,也让我对java语
5、言和greenfoot之间衔接的关系有了更深了理解,同样,也让我更加熟习了这个游戏开发平台的环境。2.3 实现功能此次我的课程设计的游戏名称为:“小鸡历险记”。通过名字,我们就可以看出,这是一个益智类的游戏。它的由来,是我根据超级玛丽的灵感而生的。超级玛丽这个游戏就是一个结合控制和脑力与一体的游戏,充分缓解玩家的心情,让玩家在娱乐中找到成功。我的这游戏,玩家控制的便是一个类似于超级玛丽的一个任务,他是以一个小鸡的模型组成的,具有一定的生命值,一般都为3。接下来便是像超级玛丽这个游戏一样,在游戏中会出现一些移动的物体和火球,这些便是敌人,玩家要按上、下、左、右,控制小鸡的方向。如果躲闪不和时,便
6、回减去一滴血,从而生命值便会减一个。随着关数的增加,过关的难度也会随之增加。这个游戏的特别之处:可以选择不同的难度来挑战相同的关卡,以次增加游戏的可玩性;:没有死亡模式,这样可以让玩家通过多次的尝试之后来完成任务。:有BOSS模式,玩家可以尝试击败BOSS来进入下一个关卡,增加游戏的可玩性。2.4 界面设计这个程序是一个益智类的游戏,包括躲避敌人、杀死敌人。是一个单机游戏,同一时刻只能有一位玩家进行游戏。如图12.5 详细设计系统流程图:游戏开局出现如图1,然后进行难度的选择,再是关卡的选择,然后就可以游戏了,如果失败那就继续游戏,直到成功为止。如果一直没有成功,上诉循环过程。虽然是一直循环下
7、去的,但是只要修改一下程序就可以修改。2.6 结构模块第三章 开发平台和开发技术3.1 J2ME基础知识Green foot是针对那些想让自己熟悉如何使用JAVA的人而设计的 是一个功能完整的开发环境,可以使用Java方便地编写游戏和进行模拟。它还可以被用来作为Java语言的教程,以和设计网络游戏,可以实用于所有年龄段的用户,而不仅仅是初学者 最主要的是Green foot和 BlueJ系统一样,对任何用途都是免费的。这个系统以和它的文档可以重新发布而不需要任何费用 ,为使用和学习JAVA的朋友提供了一个很好的环境. 3.2开发工具和环境搭配3.2.1开发工具Greenfoot可以认为是一个用
8、java语言创建二维图形程序的框架和IDE的结合体,很适合初学者使用。Greenfoot支持java的全部特性,它特别适合练习可视化组件的编程。在Greenfoot中,对象的可视化和对象的交互性是关键。 如果你知道BlueJ和Microworld这两个框架的话,Greenfoot可以看作他们的结合。 这个框架可以用来实现基于二维网格的很多程序。greenfoot的框架负责两部分工作:简便的产生对象的图形化显示,按照模拟的路线运行。为了实现这些功能,Greenfoot框架提供了一个GreenfootObject基类,其他任何想实现可视化的类都要继承他。必须执行的两个最重要的方法是:getImag
9、e()返回对象的图形,act()将在模拟路线中调用。 3.2.2环境搭配(1) 计算机的环境变量需要设置,计算机需要安装JDK版本为1.6。由于GREEN FOOT需要绑定JDK。(2) Green Foot的安装,需要到官网上下载正确的Green Foot版本,安装后需要测试时候可以使用,是否与JDK绑定。第四章 模块具体实现以和主要动画触发解释4.1 key代码public class key extends Actorboolean bpickedup = false;boolean bremoved = false;private myWorld mworld; public void
10、 addedToWorld(World world) mworld = (myWorld) world; public void act() if (bremoved) return; findplayer(); picked(); private void findplayer() if (bpickedup) return; /if its already picked up then dont bother player neb = (player) getOneIntersectingObject(player.class); if (neb != null) Greenfoot.pl
11、aySound(keycollect.wav); bpickedup = true; private void findenemy() getOneObjectAtOffset(0,8,enemy.class); enemy mutantleg = (enemy) getOneIntersectingObject(enemy.class); if (mutantleg != null & mutantleg.health 1 & !mutantleg.bKnockedOut & mutantleg.canbeattacked() ) mutantleg.health = 1; mutantle
12、g.ys = -3; mutantleg.knockmeout(); Greenfoot.playSound(kick.wav); getWorld().addObject(new effect(), mutantleg.getX(),mutantleg.getY()-8); 介绍Key这个类:首先这个类必须是继承Actor这个父类的,然后是Finddoor这个方法,先是一个判断:如果有Key则开门,反之则不开门,有Key方可进入下一关卡。玩家必须拿到钥匙之后方可进入下一个关卡。4.2 electricity代码public class electricity extends hazardbo
13、olean bRemoved = false;float xs, ys;int health = 22;float xx, yy; public electricity(boolean noeffect) xs = 0.1f * (float) (Greenfoot.getRandomNumber(16)-Greenfoot.getRandomNumber(16) ); ys = 0.1f * (float) (Greenfoot.getRandomNumber(16)-Greenfoot.getRandomNumber(16) ); health = 13; public electrici
14、ty() xs = 0.1f * (float) (Greenfoot.getRandomNumber(40)-Greenfoot.getRandomNumber(40) ); ys = 0.1f * (float) (Greenfoot.getRandomNumber(40)-Greenfoot.getRandomNumber(40) ); public void addedToWorld(World world) yy = getY(); xx = getX(); public void act() if (bRemoved) return; huntplayer(); xx += xs;
15、 yy += ys; setLocation( (int) xx,(int)yy); setRotation(Greenfoot.getRandomNumber(360); health-; if (health = 0) removeme(); private void removeme() if (bRemoved) return; bRemoved = true; getWorld().removeObject(this); 敌人自动寻找玩家,进行一些无规则的运动,如在攻击范围之内就会触发electric这个类,敌人就会变化成后者这个形态,玩家要做的就是远离敌人攻击状态。第五章 心得体会
16、 通过一个学期对greenfoot的学习,我基本掌握了greenfoot的比较基础的编程方法。因为greenfoot是已java语言为基础的游戏制作平台,其所有的语言标准和java的没有什么本质的不同,所以,通过以往对java的学习和认识,真正的操作起来,并不是很难着手。只要看了老师以前给的那些视频,我觉得greenfoot这个软件还是很容易上手的,甚至在某些方面还比myeclipse还容易一点。至少在greenfoot里面,有的类或者对象,你可以直接拖动,不用在生成和调用了。看似简单的益智游戏背后,确实异常复杂的算法。在网上参考了类似的逻辑算法和代码,也是各有不同,让我更认识到了自身学习的不足之处,也更进一步产生了对游戏开发的兴趣。受益匪浅,感悟颇多。游戏开发是一个创新的过程,由于能力欠缺,做了一个众所周知的项目。此次开发主要运用了画布的知识,在实践中掌握技术,灵活运用。另外在请教游戏开发者的过程中有所启发,修改了触屏模式,使得用户操作更为方便。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1