游戏程序设计报告Word下载.docx
《游戏程序设计报告Word下载.docx》由会员分享,可在线阅读,更多相关《游戏程序设计报告Word下载.docx(12页珍藏版)》请在冰豆网上搜索。
第一章引言.................................................................. 1
1.1 研究背景 1
第二章需求分析与系统设...计......................................... 2
2.1设计目的 2
2.2设计要求 3
2.3实现功能 3
2.4界面设计 4
2.5详细设计 4
2.6结构模块 6
第三章 开发平台及开发技....术 6
3.1J2ME基础知识 6
3.2开发工具和环境搭配 6
3.2.1开发工具 6
3.2.2环境搭配 7
第四章 模块具体实现以及主要动画触..发....解....释 7
4.1key代码 7
4.2electricity代码 9
第五章 心得体会 11
3
第一章引言
1.1 研究背景
Greenfoot是针对那些想让自己熟悉如何使用JAVA的人而设计的,是一个功能完整的开发环境,可以使用Java方便地编写游戏和进行模拟。
它还可以被用来作为Java语言的教程,以及设计网络游戏,可以实用于所有年龄段的用户,而不仅仅是初学者。
最主要的是Greenfoot和BlueJ系统一样,对任何用途
都是免费的。
这个系统以及它的文档可以重新发布而不需要任何费用,为使用和学习JAVA的朋友提供了一个很好的环境。
Greenfoot可以认为是一个用java语言创建二维图形程序的框架和IDE的结合体,很适合初学者使用。
Greenfoot支持java的全部特性,它特别适合练习可视化组件的编程。
在Greenfoot中,对象的可视化和对象的交互性是关键。
在Greenfoot的帮助之下一些软件游戏的开发变得很简单。
我这次开发的是一款益智类的游戏。
我希望通过自己的所学知识把它剖析开来,真正的了解它的本质和精髓。
虽然我的编程能力不是很强,但是我有信心,在这次学习中我将从实践和实际的项目中提高自己的编程能力。
第二章需求分析与系统设计
2.1设计目的
通过本学期对游戏程序的研究,我们掌握了运用 greenfoot来制作游戏的技术,虽然不娴熟还有待提高,但是一些技术含量较低的小游戏还是很容易让我们掌握的。
此次游戏程序设计的目的,主要是通过greenfoot来制作游戏来更好的掌握java语言。
通过greenfoot这个平台,熟习greenfoot在制作游戏方面所需要的技巧,将自己的游戏尽可能多的运用所学到的技术,并且将在
平时java课程上面学到的知识付诸于实践,并从实际操作中,找出自己的不足之处进行弥补。
每一次的课程设计,都是一次小小的软件工程,所以需要我们用百分百的的态度来对待。
对于小一点的程序,我们一个人足以应付,但是这并不是说我们可以单独一个人为所欲为,其实质应该是通过课程设计来锻炼自己独立自主的能力。
而对于那些相对于麻烦的程序,就需要两个或者多个人来共同完成,这便需要他们的协作能力,这样对他们以后进入软件公司发展有了更多的基础。
2.2设计要求
这次课程设计的要求并不像以往那么紧,老师让我们可以通过多个平台和系统来制作游戏,包括电脑游戏和手机游戏,从 sun公司的手机开发平台WTK,到谷歌的安卓操作系统,只要我们喜好哪一个,并有能力完成就可
以了。
所以,这次我选择了greenfoot作为我游戏编程的平台。
因为我平时学习的就是java语言,而greenfoot便是一个已Java语言为基础的游戏
开发平台,所以,在编程的过程中不仅提高了效率,也让我对 java语言和greenfoot之间衔接的关系有了更深了理解,同样,也让我更加熟习了这个游戏开发平台的环境。
2.3实现功能
此次我的课程设计的游戏名称为:
“小鸡历险记”。
通过名字,我们就可以看出,这是一个益智类的游戏。
它的由来,是我根据超级玛丽的灵感而生的。
超级玛丽这个游戏就是一个结合控制和脑力与一体的游戏,充分缓解玩家的心情,让玩家在娱乐中找到成功。
我的这游戏,玩家控制的便是一个类似于超级玛丽的一个任务,他是以一个小鸡的模型组成的,具有一定的生命值,一般都为3。
接下来便是像超级玛丽这个游戏一样,在游戏中会出现一些移动的物体和火球,这些便是敌人,玩家要按上、下、左、右,控制小鸡的方向。
如果躲闪不及时,便回减去一滴血,从而生命值便会减一个。
随着关数的增加,过关的难度也会随之增加。
这个游戏的特别之处:
①:
可以选择不同的难度来挑战相同的关卡,以次增加游戏的可玩性;
②:
没有死亡模式,这样可以让玩家通过多次的尝试之后来完成任务。
③:
有BOSS模式,玩家可以尝试击败BOSS来进入下一个关卡,增加游戏的可玩性。
2.4界面设计
这个程序是一个益智类的游戏,包括躲避敌人、杀死敌人。
是一个单机游戏,同一时刻只能有一位玩家进行游戏。
如图1
4
2.5详细设计
系统流程图:
游戏开局出现如图1,然后进行难度的选择,再是关卡的选择,然后就可以游戏了,如果失败那就继续游戏,直到成功为止。
如果一直没有成功,上诉循环过程。
虽然是一直循环下去的,但是只要修改一下程序就可以修改。
9
2.6结构模块
第三章 开发平台及开发技术
3.1J2ME基础知识
Greenfoot是针对那些想让自己熟悉如何使用JAVA的人而设计的是一个功能完整的开发环境,可以使用Java方便地编写游戏和进行模拟。
它还可以被用来作为Java语言的教程,以及设计网络游戏,可以实用于所有年龄段的用户,而不仅仅是初学者
最主要的是Greenfoot和BlueJ系统一样,对任何用途都是免费的。
这个系统以及它的文档可以重新发布而不需要任何费用 ,为使用和学习JAVA的朋友提供了一个很好的环境.
3.2开发工具和环境搭配
3.2.1开发工具
Greenfoot可以认为是一个用java语言创建二维图形程序的框架和IDE
的结合体,很适合初学者使用。
Greenfoot支持java的全部特性,它特别适
合练习可视化组件的编程。
在Greenfoot中,对象的可视化和对象的交互性是关键。
如果你知道BlueJ和Microworld这两个框架的话,Greenfoot可以看作他们的结合。
这个框架可以用来实现基于二维网格的很多程序。
greenfoot的框架负责两部分工作:
简便的产生对象的图形化显示,按照模拟的路线运行。
为了实现这些功能,Greenfoot框架提供了一个GreenfootObject基类,其他任何想实现可视化的类都要继承他。
必须执行的两个最重要的方法是:
getImage()返回对象的图形,act()将在模拟路线中调用。
3.2.2环境搭配
(1) 计算机的环境变量需要设置,计算机需要安装JDK版本为1.6。
由于GREENFOOT需要绑定JDK。
(2) GreenFoot的安装,需要到官网上下载正确的GreenFoot版本,安装后需要测试时候可以使用,是否与JDK绑定。
第四章 模块具体实现以及主要动画触发解释
4.1key代码
publicclasskeyextendsActor
{
booleanbpickedup=false;
booleanbremoved=false;
privatemyWorldmworld;
publicvoidaddedToWorld(Worldworld){mworld=(myWorld)world;
}
publicvoidact()
if(bremoved){return;
}findplayer();
picked();
privatevoidfindplayer()
if(bpickedup){return;
}//ifitsalreadypickedupthendontbotherplayerneb=(player)getOneIntersectingObject(player.class);
if(neb!
=null)
Greenfoot.playSound("
keycollect.wav"
);
bpickedup=true;
privatevoidfindenemy()
getOneObjectAtOffset(0,8,enemy.class);
enemymutantleg=(enemy)getOneIntersectingObject(enemy.class);
if(mutantleg!
=null
&
mutantleg.health>
1
!
mutantleg.bKnockedOut
mutantleg.canbeattacked()
)
8);
mutantleg.health=1;
mutantleg.ys=-3;
mutantleg.knockmeout();
Greenfoot.playSound("
kick.wav"
getWorld().addObject(neweffect(),mutantleg.getX(),mutantleg.getY()-
介绍Key这个类:
首先这个类必须是继承Actor这个父类的,然后是Finddoor这个方法,先是一个判断:
如果有Key则开门,反之则不开门,有Key方可进入下一关卡。
玩家必须拿到钥匙之后方可进入下一个关卡。
4.2electricity代码
publicclasselectricityextendshazard
booleanbRemoved=false;
floatxs,ys;
inthealth=22;
floatxx,yy;
publicelectricity(booleannoeffect)
xs= 0.1f*(float)(Greenfoot.getRandomNumber(16)-Greenfoot.getRandomNumber(16));
ys=0.1f*(float)(Greenfoot.getRandomNumber(16)-Greenfoot.getRandomNumber(16));
health=13;
publicelectricity()
xs= 0.1f*(float)(Greenfoot