高级程序设计语言课程设计总结_第1页
高级程序设计语言课程设计总结_第2页
高级程序设计语言课程设计总结_第3页
高级程序设计语言课程设计总结_第4页
高级程序设计语言课程设计总结_第5页
已阅读5页,还剩4页未读, 继续免费阅读

下载本文档

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

文档简介

1、程序名称:魔塔专业班级:软件工程四班小组成员姓名及学号:朱志鑫201500301238李嘉伟201500301158龚树志201500301120高级程序设计语言课程设计总结程序名称:魔塔专业班级:软件工程四班小组成员姓名及学号:朱志鑫201500301238李嘉伟201500301158龚树志201500301120系统分析与设计3系统的实现4错误以及调试6说明书7收获体会8系统分析与设计1. 需求分析:基于JAVA实现的小游戏,用于娱乐,丰富自己的代码水平,对已有的游戏进行改编,添加自己的想象,使玩家感到新颖。2.系统设计:总体面板采用二维数组的形式,将画面分割成13*13个小格,添加到二

2、维数组内,并对每一个元素都给定一个特定的编号,然后对此二维数组进行一系列的操作。对二维数组的每一个元素进行了分类,并单独包装成一个单独的类:有 Hero ,door ,floor ,Key ,Monster ,prop ,stair ,Wall.并在TowerClient类内进行实现。添加了对按键的处理,采用了多线程的方式来对每一个元素的重画,和音乐播放功能的实现。采用了Window来展示打斗的场面,并添加了计时器,使其弹出一个定时关闭的窗口。系统的实现楼梯怪物门钥匙墙道具元素的分类:静态元素动态人飞行道具 各个元素在面板上的实现:1. 动态元素: HERO:属性:血量,攻击力,防御力,拥有的

3、各种钥匙。重画的实现:采用了键盘控制人物走动的方式,通过增加键盘监听器,然后对相应的按键进行对应的处理,改变人物的X,Y坐标值实现人物的走动。将人物的图片的URL放在一个String类型的数组内,通过引用这个数组内的URL地址,来将图片画在面板上。同时启用一个线程,不断改变这个数组的下标值,使每次重画的图片与上次不同,达到人物走动的效果。FLYPROP:作为一个攻击完怪物后的奖励道具,他出现的位置由HERO的当前位置决定,当打斗场面的WINDOW消失后开始画出,并以一定的速度向右平移,当碰到HERO时,按下空格键,可以得到道具奖励,获得相应属性的加成,道具消失。2. 静态元素:Stair:楼梯

4、是HERO切换楼层的通道,所以它与HERO之间有一个碰撞方法,当发生碰撞时,切换楼层(改变二维数组的下标值,达到楼层切换的效果)Monster:怪物是可以与HERO发生战斗的,他有和英雄一样的属性,当他与英雄发生碰撞时,会调用战斗的WINDOW,并调用打斗声音的线程,播放打斗的声音。如果怪物的等级过高,人物打不过,就不会发生战斗,而是作为一堵墙的形式阻挡HERO的行走。Door:门是通过对应的钥匙打开的,一共有三种颜色的门,当门打开后,门就会消失,变为通道,并启用对应的音乐线程Key: 钥匙是和门配对的,一种钥匙能开一种门,钥匙可以全游戏累加,当打开门后,对应的钥匙的数量会减一,如果钥匙不够,

5、则不能打开门。Wall: 墙是用来阻挡HERO走动的,当HERO碰到墙时就不会再往前移动。PROP:道具能为HERO提供各种加成,来帮助我们通关。音乐的添加:用了两个类来实现,一个类的构造器有两个参数,一个是音乐的URL地址,另一个是一个布尔变量,来判断该音乐能否重复播放。当需要添加音乐时,直接NEW出来一个线程,并通过布尔值来进行背景音乐和效果音乐的播放。TowerClient类:这个类是这个程序的主体,main 方法以及各种监听器,面板,以及各个元素的重画,方法的调用都在这个类中完成。错误以及调试1、 我们遇到的第一个困难是在楼梯设计时实现楼层的转换。即英雄在碰撞到楼梯时实现墙壁等一系列事

6、物的重画,我们尝试了多种方法如将每个楼层作为一个类或者将楼层作为一个单独的类并有属性来定义每个不同的楼层。但都在实现的过程中遇到了很多困难,花了不少时间还是有难以解决的bug,于是我们想到了来定义简单的楼层,里面拥有每层事物的数组,不同的数字代表不同的事物,拥有返回该数组的方法在上下楼梯时调用,通过传给主面板不同的数组来实现不同楼层之间的转换。2、 第二个即是英雄与怪物的打斗场面。本来我们想要在英雄与怪物碰撞时直接出结果,但觉得单调,于是打算实现在英雄与怪物大都是出现一个单独的窗口实现怪物与英雄各个属性的对面以及血量的变化,不同的怪物展示不同的怪物图像。之后想着美化打斗界面,但由于遇到困难,最

7、终只是稍稍改变了一下。3、 在完善程序的过程中我们需要对游戏加入各种音效。但由于并没有接触过这种方法,只好靠百度学习,网上寻找讲解类似问题的博客,仔细研究,最终靠着线程知识,在需要声效的时候创建一个播放声音的线程,实现了这种效果。说明书点击开始游戏进入游戏界面,方向键上下左右控制人物移动,游戏中有三种颜色钥匙对应三种颜色的门,碰到怪物,若能够打过则开始战斗,若无法打过,则不会发生战斗。战斗结束后会飘过三种不同的药水,在其经过英雄的时候点击空格键即可获得该药水提供的效果。最终就出公主即为完成通关。收获体会经过这几周对课设的设计研究完善,让我更加了解到学习java的重要性,在上个学期我们学习了ja

8、va语言程序设计基础,再次基础之上学习起来就方便了一些,做起实验来也会比较适应,能很快进入状态。在程序设计过程中,往往会遇到很多难懂和自己一个人很难解决的问题,所以要时时刻刻有信心,遇到bug先自己调试,实在不行再请教别人,一起探讨。在这个实验后,发现java在现实生活中应用非常广,而我们如今学的都只是最基础的东西,要学习更深,更专业的东西,就必须在电脑上实战操作。只有现在打好基础以后才能更好的运用。这次课程设计也算是我们独立完成的第一个完整的游戏,这期间我们对各种基础的语法,方法的使用更加熟练,更加得心应手,对面向对象思想有了更加深刻一点的理解,会在遇到一个问题的时候自动的使用面向对象的思想来考虑问题。此次实验我们也对我们的专业有了理解,同时对本专业的兴趣也有所提

温馨提示

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

最新文档

评论

0/150

提交评论