软件设计毕业设计论文JAVA桌面游戏开发植物大战僵尸Word文档下载推荐.docx

上传人:b****8 文档编号:22729587 上传时间:2023-02-05 格式:DOCX 页数:20 大小:1.31MB
下载 相关 举报
软件设计毕业设计论文JAVA桌面游戏开发植物大战僵尸Word文档下载推荐.docx_第1页
第1页 / 共20页
软件设计毕业设计论文JAVA桌面游戏开发植物大战僵尸Word文档下载推荐.docx_第2页
第2页 / 共20页
软件设计毕业设计论文JAVA桌面游戏开发植物大战僵尸Word文档下载推荐.docx_第3页
第3页 / 共20页
软件设计毕业设计论文JAVA桌面游戏开发植物大战僵尸Word文档下载推荐.docx_第4页
第4页 / 共20页
软件设计毕业设计论文JAVA桌面游戏开发植物大战僵尸Word文档下载推荐.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

软件设计毕业设计论文JAVA桌面游戏开发植物大战僵尸Word文档下载推荐.docx

《软件设计毕业设计论文JAVA桌面游戏开发植物大战僵尸Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《软件设计毕业设计论文JAVA桌面游戏开发植物大战僵尸Word文档下载推荐.docx(20页珍藏版)》请在冰豆网上搜索。

软件设计毕业设计论文JAVA桌面游戏开发植物大战僵尸Word文档下载推荐.docx

2、有不同的敌人和可使用道具,使游戏更具挑战性。

3、无限次重玩,不会经历两次同样的事件。

二.设计内容:

通过玩家对不同植物的选择,例如向日葵可快速产生阳光,豌豆射手可攻击敌人等等,来操作游戏,后台通过调整时间和参数达到前端界面游戏的可玩性。

功能类别

子功能

前端游戏界面

主界面

模式选择

进入游戏

确定关卡

退出

后台代码设计

选择、放置植物

阳光生产时间

收集阳光

产生僵尸

攻击、杀死僵尸

 

二设计说明

1游戏逻辑

(1)僵尸是攻击方,为了攻击,防御僵尸,人类通过栽种培植出的各种植物来抵御进攻型僵尸的攻击。

植物需要相应的阳光值成长。

(2)在作战地点,玩家需要通过种植各种攻击植物来消灭僵尸,也可以通过种防御植物来阻挡僵尸,还需要太阳花来产生种植需要的阳光。

3僵尸作战单位

(1)普通僵尸。

速度(1帧),血限3,毁掉植物需要3s。

4植物作战单位

(1)太阳花。

种植需阳光值50,作用:

生产种植所需的阳光值,每隔10s生产50点阳光值,不具备攻击力。

(2)碗豆射手。

种植需阳光值100,作用:

5s发射一颗炮弹,战斗值1。

(3)寒冰射手。

种植需阳光值175,作用:

5s发射一颗炮弹,战斗值1.

(4)土豆卫士。

抵挡各种僵尸3s,主要用来防御,没有任何战斗力。

等共5种可供选择种植的植物。

关卡简介:

所有的僵尸都会参与攻击,所有的植物也都会参与作战,每次只能选取5种植物参与作战。

5碰撞逻辑说明

僵尸会在屏幕的右边生成,然后缓慢向左边屏幕移动,如果在僵尸移动的线路上有攻击型植物,则发射炮弹。

当种植的植物或炮弹与僵尸接触,即当他们的坐标相同的时候,即为接触,接触大小的区域就是图片的大小区域。

当炮弹与僵尸碰撞之后,炮弹也就会立即消失,同时僵尸生命值的也随之减少一点。

若炮弹未击中任何僵尸,越出屏幕后也将消失。

2.技术分工

本人在项目中负责后台代码实现,主要有

1.阳光添加

2.僵尸移动

3.子弹移动

4.生产阳光

5.产生子弹

3.设计方法

技术要求:

前端:

Javascript

后台:

Servlet

开发工具:

MyEclipse

因为类中已经写好了方法和属性,在后台代码设计中,只需要调用之前写好的类,对静止的图像进行多次重绘,就可以实现游戏的画面。

第三部分成果展示

设计成果:

产品设计类

一:

运行截图

二:

程序代码:

阳光添加代码:

packageplantvsplant.tool;

importjava.awt.event.MouseAdapter;

importjava.awt.event.MouseEvent;

importjavax.swing.JLabel;

importplantvsplant.Controller;

publicclassSunAddextendsThread{

Controllercontroller;

privateJLabelsun;

privateinta;

privateintb;

publicstaticbooleanstop=false;

publicSunAdd(intx,inty,Controllercontroller,JLabelsun){

this.controller=controller;

this.a=x;

this.b=y;

this.sun=sun;

}

publicvoidrun(){

sun.addMouseListener(newMouseAdapter(){

publicvoidmouseClicked(MouseEvente){

sun.setVisible(false);

controller.putSunValue(25);

}

});

while(true){

if(stop){

break;

try{

sleep(200);

}catch(InterruptedExceptione){

e.printStackTrace();

b+=3;

if(a<

200)

a+=2;

sun.setBounds(a,b,80,80);

if(b>

=650)

{

}

}

}

僵尸移动代码:

publicclassCorpseMoveThreadextendsThread{

privateintx;

privateinty;

privateJLabelcorpse;

privatebooleanflag=true;

privateintsecond=1500;

privateControllercontroller;

publicCorpseMoveThread(Controllercontroller,intx,inty){

this.x=x;

this.y=y;

controller.getWin().putCorpse(x,y,Integer.parseInt(controller.getGrid().getBoard()[x][y].substring(0,2)));

corpse=controller.getWin().getCorpseMap().get(100*x+y);

publicvoidrun(){

while(flag){

intaa=controller.moveCorpse(x,y);

corpse.setVisible(false);

if(aa==-1){

flag=false;

}else{

controller.getWin().putCorpse(x,aa,Integer.parseInt(controller.getGrid().getBoard()[x][aa].substring(0,2)));

corpse=controller.getWin().getCorpseMap().get(100*x+aa);

y=aa;

}

sleep(second);

}catch(Exceptione){

if(flag==false){

corpse.setVisible(false);

publicintgetX(){

returnx;

publicvoidsetX(intx){

this.x=x;

publicintgetY(){

returny;

publicvoidsetY(inty){

this.y=y;

publicbooleanisFlag(){

returnflag;

publicvoidsetFlag(booleanflag){

this.flag=flag;

publicintgetSecond(){

returnsecond;

publicvoidsetSecond(intsecond){

this.second=second;

publicControllergetController(){

returncontroller;

publicvoidsetController(Controllercontroller){

this.controller=controller;

publicJLabelgetCorpse(){

returncorpse;

publicvoidsetCorpse(JLabelcorpse){

this.corpse=corpse;

子弹移动代码:

controller.getWin().putCorpse(x,aa,Integer.parseInt(controller.getGrid().getBoard()[x][aa].substring(0,2)));

太阳花生产阳光代码:

子弹生产代码:

publicclassProduceBulletextendsThread{

publicProduceBullet(intx,Controllercontroller,inty){

while(flag){

controller.produceBullet(x,y);

controller.isStopProduceButtle(x,y);

sleep(1500);

e.printStackTrace();

第四部分结束语

在这一个月的毕业设计中,考验了我是否真的牢固掌握了全部所学的专业知识,通过本次毕业设计,我深深感觉到基础知识的不健全和不牢固,在本次毕业设计中表现出了这样或那样的不足和漏洞,说明了基本功的不扎实,所幸我得到了老师和同学们的热情帮助,使这些问题得到了解决,这将对我以后的工作和学习有极大的帮助。

再者,本次毕业设计全面锻炼了我驾御知识的能力,使我对这三年来所学的理论知识进行了系统化、条理化、全面化的回顾和复习让我懂得了如何运用自己所学的知识,同时又学到了猎取其他知识的方法,这些都将作为课本知识的有益补充,为我们以后所要从事的工作打下坚实的基础。

由于此次毕业设计的角度限制和知识的不够系统和不够完善,难免有错误和不足之处敬请老师批评指正以完善此次毕业设计。

本次毕业设计已经结束,我不仅收获了知识而且也锻炼了品质,通过这次认真而又细致的毕业设计,我对待事情的态度更加严谨更加有耐心,并且我更希望把所做的事情做好做完美,我想这将是一种很重要的财富。

五致谢

本设计在导师的悉心指导下完成的。

导师渊博的专业知识、严谨的治学态度,精益求精的工作作风,诲人不倦的高尚师德,严于律己、宽以待人的崇高风范,朴实无法、平易近人的人格魅力对本人影响深远。

不仅使本人树立了远大的学习目标、掌握了基本的研究方法,还使本人明白了许多为人处事的道理。

本次设计从选题到完成,每一步都是在导师的悉心指导下完成的,倾注了导师大量的心血。

在此,谨向导师表示崇高的敬意和衷心的感谢!

在写设计的过程中,遇到了很多的问题,在老师的耐心指导下,问题都得以解决。

所以在此,再次对老师道一声:

老师,谢谢您!

时光匆匆如流水,转眼便是大学毕业时节,春梦秋云,聚散真容易。

离校日期已日趋渐进,毕业设计的完成也随之进入了尾声。

从开始进入课题到设计的顺利完成,一直都离不开老师、同学、朋友给我热情的帮助,在这里请接受我诚挚的谢意!

在此我向信息系的所有老师表示衷心的感谢,谢谢你们三年的辛勤栽培,谢谢你们在教学的同时更多的是传授我们做人的道理,谢谢三年里面你们孜孜不倦的教诲!

三年寒窗,所收获的不仅仅是愈加丰厚的知识,更重要的是在阅读、实践中所培养的思维方式、表达能力和广阔视野。

很庆幸这三年来我遇到了如此多的良师益友,无论在学习上、生活上,还是工作上,都给予了我无私的帮助和热心的照顾,让我在一个充满温馨的环境中度过三年的大学生活。

感恩之情难以用言语量度,谨以最朴实的话语致以最崇高的敬意。

六参考文献

[1]Eric.Java编程思想[M].第4版.机械工业出版社,机械工业出版社.

[2] 

Weiss, 

MA. 

数据结构与

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 可爱清新

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1