超级玛丽游戏设计javaWord文件下载.docx

上传人:b****7 文档编号:21863268 上传时间:2023-02-01 格式:DOCX 页数:21 大小:485.46KB
下载 相关 举报
超级玛丽游戏设计javaWord文件下载.docx_第1页
第1页 / 共21页
超级玛丽游戏设计javaWord文件下载.docx_第2页
第2页 / 共21页
超级玛丽游戏设计javaWord文件下载.docx_第3页
第3页 / 共21页
超级玛丽游戏设计javaWord文件下载.docx_第4页
第4页 / 共21页
超级玛丽游戏设计javaWord文件下载.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

超级玛丽游戏设计javaWord文件下载.docx

《超级玛丽游戏设计javaWord文件下载.docx》由会员分享,可在线阅读,更多相关《超级玛丽游戏设计javaWord文件下载.docx(21页珍藏版)》请在冰豆网上搜索。

超级玛丽游戏设计javaWord文件下载.docx

游戏进行的声音、玛丽吃金币的声音、玛丽撞墙的声音、玛丽发子弹的声音、玛丽死亡的提示音等等;

玛丽游戏界面上有文件(退出游戏、打开地图)、游戏(暂停、开始、新游戏)、工具(自定义地图)、帮助(关于、使用说明)的菜单,并且在每个子菜单上添加特定的标志;

设计思路:

1、首先设计游戏主界面、游戏界面上的控制菜单,

控制菜单包括:

文件、游戏、工具、游戏帮助。

 

文件、游戏等菜单又包含了以下子菜单:

文件:

单击打开地图,就可以选择已创建好的地图关卡;

单击退出游戏,就直接退出整个游戏主界面。

游戏:

单击新游戏,游戏就会从第一关重新开始;

单击开始游戏,游戏就开始进行,玩家可以通过键盘的按键来对玛丽的动作进行控制;

单击暂停游戏,游戏就暂停运行。

工具:

单击工具里的自定义地图,就会弹出自定义地图框,可以在框内进行新地图的创建。

游戏帮助:

单击使用说明,里面有玩此游戏的所有操作说明;

单击关于,就会有制作人和版本说明。

注意:

在对游戏设计的每一步,我们都需要进行功能的测试,这样才能保证编程游戏的正常进行。

2、游戏控制界面图:

二、类模块的设计:

此游戏是用对创建的类中的静态方法的调用来实现的,而且类与类之间是相互嵌套的;

通过对游戏的功能要求分析,将超级玛丽的功能划分成了十五个类模块:

zkml类、chuangkou类、gui类、game类、wenjian类、zi_map类、ml_map类、Photos类、Wav类、ma_li类、Enemy类、Skill类、Bullet类、move_wall类:

Record类。

下面是对每个类的简单介绍:

zkml类:

在zkml类里面包含了main方法,由于程序的运行是从主方法开始,所以zkml类是游戏的主类;

主要代码:

publicclasszkml{

publicstaticvoidmain(String[]args){

chuangkouaa1=newchuangkou();

newphotos(aa1);

//装载图片

newgame(aa1).start();

//创建游戏时钟线程

newma_li().start();

//创建玛丽运动线程

newenemy().start();

//创建敌人运动线程

newskill().start();

//创建技能运动线程

newbullet().start();

//创建子弹运动线程

newrecord().start();

//创建动态显示计分类

newmove_wall().start();

//创建移动的墙类

}

}

chuangkou类和gui类:

在Chuangkou类里面创建游戏主界面;

主要代码如下:

classchuangkouextendsJFrameimplementsActionListener{·

·

}//主界面

在gui类是游戏运行窗口类;

classguiextendsJPanelimplementsKeyListener,Runnable{

………………………………………..

publicvoidpaint(Graphicsg){·

}//游戏框

publicvoidkeyReleased(KeyEvente){·

}//释放某个键时调用此方法

publicvoidkeyPressed(KeyEvente){·

}//按下某个键时调用此方法

publicvoidkeyTyped(KeyEvente){·

};

publicvoidrun(){·

}//按键处理线程(实现多按键处理)

game类:

是游戏数据类(包含游戏中的所有重要数据);

classgameextendsThread{

publicstaticchuangkouaa1;

publicstaticintmoney,life,guan_qia,time;

//life玛丽生命

publicstaticbooleanshow,stealth;

//show控制显示,stealth玛丽是否隐身

publicstaticlongscore;

//得分

publicstaticbooleansuspend=true,games=false;

//suspend暂停游戏games是否游戏

publicstaticintmk,l=0,lm=0;

//控制变量

game(chuangkouaa1){

this.aa1=aa1;

}

publicstaticvoidinints(){·

}//新游戏初始

publicstaticvoidinint(){·

}//(菜单文件)打开地图初始(每死亡地图从新打开一次)

publicstaticvoidnew_inint(){·

}//过关初始

publicstaticvoidinint_ml(){·

}//玛丽死亡后初始

publicstaticvoidadd_score(intx,inty,intchoose){·

}//加分

publicstaticvoidgameover(){·

}//游戏结束

}//线程

wenjian类:

是文件类型类;

代码:

classwenjianextendsFileFilter{

publicStringext;

publicwenjian(Stringext){

this.ext=ext;

publicbooleanaccept(Filefile){

if(file.isDirectory())

returntrue;

Stringf_name=file.getName();

intdex=f_name.lastIndexOf("

."

);

if(dex>

0&

&

dex<

f_name.length()-1){

Stringpd=f_name.substring(dex+1).toLowerCase();

if(pd.equals(ext))

returnfalse;

publicStringgetDescription(){

if(ext.equals("

hzk"

))

return"

地图文件(*.hzkml)"

;

hzks"

游戏进度文件(*.hzkmls)"

return"

"

zi_map类:

是自定义地图类(地图的绘画);

classzi_mapextendsJPanelimplementsKeyListener,ActionListener{·

}//自定义地图容器

publicFilefile;

publicchuangkouaa1=null;

publicJFileChooserkuang=null;

//文件框

publicguigo=null;

publicContainergames=null;

publicbooleanps[]=newboolean[6];

//按键检测

publicJButtonb1,b2,b3;

publicJLabelts,ah,ah1,ah2,ah3;

publicJTextFieldx1,y1;

publicstaticinti,j;

publiczi_map(chuangkouaa1,Containergames,guigo,JFileChooserkuang){

publicvoidpaint(Graphicsg){·

}//画框

publicvoidkey(){·

}//按键处理

publicvoidkeyReleased(KeyEvente){·

publicvoidkeyPressed(KeyEvente){{·

}/按下某个键时调用此方法

publicvoidkeyTyped(KeyEvente){·

publicvoidactionPerformed(ActionEventea){·

}//按键

}

ml_map类:

是游戏地图类;

classml_map{

publicstaticinti,j,chcae_mali,yun_ti;

//chcae_mali缓存玛丽初始的数组位置信息,yun_ti缓存云梯数组位置信息

publicstaticfinalintRGD[][]={{79,128,250},{0,0,0}};

//地图背景色(蓝天,黑夜)

publicstaticintrgd[]=newint[3],rgd_cache[]=newint[3];

//rgd背景色,rgd_cache缓存背景色

publicstaticintmaps[][]=newint[14][400];

//地图(数组值意义0无,1~20地图组件100撞墙特效1,101撞墙特效2,200敌人2,201敌人2)

publicstaticintnew_ml[][]=newint[15][2];

//玛丽在地图中复活或产生的位置

publicstaticintreturn_surface[][]=newint[5][2];

//玛丽从土里从回地表面的位置

publicstaticintup_map[]=newint[5];

//下地下地图位置

publicstaticintsoil_map[]=newint[5];

//地下地图的位置

publicstaticintsky_map[][]=newint[3][4];

//天空地图的位置(x起,始,玛丽从天空下降的x坐标,y坐标)

publicstaticintyun_ladder[]=newint[3];

//云梯位置

publicstaticintskip_qi=0;

//过关跳旗地图位置(开始seat地图位置)

publicstaticintseat=0,end_seat=0;

//seat地图位置

publicstaticvoidinints(){·

}//初始

publicstaticvoidinints_new_enemy_move_wall(intseats){·

}//新地图(或地图初)初始产生敌人或会动的墙

publicstaticvoidstorage_mali_revive_position(intx,inty){·

}//存储玛丽复活位置

publicstaticvoidstorage_mali_return_surface_position(intx,inty){·

}//存储玛丽从土里从回地表面的位置

publicstaticvoidstorage_soil_map_position(intx,inty){·

}//存储土地里的地图位置

publicstaticvoidstorage_up_map(intx,inty){·

}//存储下(地下)地图位置

publicstaticvoidstorage_sky_map(intchoose,intchooses){·

}//存储天空地图位置(x起始)

publicstaticvoidstorage_yun_ladder(intx){·

}//存储云梯位置

publicstaticvoidvary_map(intx,intchoose){·

}//变化地图(int玛丽的初始x坐标;

int0上地表面,1下地表面,2上去过关拉旗,3上去天空,4下到土地里)

publicstaticvoidnew_yun_ti(intx,inty){·

}//产生云梯

Photos类:

是图片类(用于读入游戏中的所有图片);

classphotos{

publicstaticImagephoto[]=newImage[41];

//地图专用

publicstaticImagebody[][]=newImage[2][6];

//敌人专用

publicstaticImagemy[][]=newImage[3][14];

//玛丽专用

publicstaticImageskill[][]=newImage[4][2];

//技能专用

publicstaticImagez_d[]=newImage[5];

//子弹专用

publicstaticImagemoney[]=newImage[2];

//撞击金币特效专用

publicstaticImageeat_ml[]=newImage[2];

//食人花专用

publicphotos(chuangkouaa1){·

}/*地图*/

Wav类:

是声音类(此类在游戏中添加了一些特定的声音,是为了让游戏的效果更完美);

classwav{

publicstaticvoidgames(){

try{

FileInputStreamfileau=newFileInputStream("

wav/地上.wav"

AudioStreamas=newAudioStream(fileau);

AudioPlayer.player.start(as);

//播放

//AudioPlayer.player.stop(as);

//停止播放

}catch(Exceptione){}

publicstaticvoidmoney(){·

}//吃金币

publicstaticvoidq1(){·

}//玛丽撞墙(不损坏)

publicstaticvoidq2(){·

}//玛丽撞墙(损坏)

publicstaticvoidskip(){·

}//玛丽跳

publicstaticvoidnew_eat(){·

}//产生技能

publicstaticvoideat(){·

}//玛丽吃技能

publicstaticvoidzd(){·

}//玛丽发子弹

publicstaticvoidsmall(){·

}//玛丽变小

publicstaticvoidd_die(){·

}//敌人死亡

publicstaticvoidml_die(){·

}//玛丽死亡

publicstaticvoidpull(){·

}//过关拉旗

publicstaticvoidadd_life(){·

}//加生命

publicstaticvoidend_games(){·

}//游戏结束声音

publicstaticvoidml_town(){·

}//进入城堡声音

ma_li类:

是玛丽类(包含玛丽的一切动作);

classma_liextendsThread{

publicstaticml_mapmap;

//引入地图maps[14][400];

地图移动seat;

publicstaticfinalintdes[]={0,0,7,1,0};

//初始玛丽坐标数据0.玛丽类型,1.玛丽高度,2.玛丽显示形状,3.玛丽方向,4.玛丽是否发子弹;

publicstaticintcoordinate[]=newint[7];

//坐标(地图坐标)0.x,1.y,2.玛丽形状大小(0,1,2)3.玛丽高度(0,1)4,玛丽显示形状5.玛丽方向(0左,1右)6玛丽是否发子弹(0,1)

publicstaticintmoneys[]=newint[3],ml_x;

//撞击金币坐标0.x,1.y,2上升高度

publicstaticbooleanmoneys_p=false,via=false,mali_die=false;

//撞击金币显示控制;

via过关还是死亡(初始选择);

mali_die玛丽是否死亡

publicstaticinti,j,kfc=0,ml_tall=0;

//die玛丽死亡位置

publicstaticintmove[]={2,8,1,1};

publicstaticbooleanskip_qi=false,left_right=false,skip=false,caches=false,

launch=false,down=false,yan_enemy,abc=true;

//yan_enemy玛丽压死着敌人特效

publicstaticintyan_enemys[]=newint[3];

//压玛丽的坐标x,y,类型

publicstaticintml_skip;

//控制弹跳的高度

publicstaticintmoney,cache[]=newint[3],tame[]=newint[2];

//money控制钱箱的撞击次数();

cache[]墙特效缓存x,y,形状;

tame[]记录损坏墙的位置

publicstaticbooleanbelow=false,sky=false;

//below是否在土里;

sky是否在天上

publicstaticbooleanshow_mali=true;

//是否显示玛丽

publicstaticinthigh_low,around;

//high_low上下,around左右

publicstaticvoidinint_mali_behaviour(){·

}//初始玛丽行为

publicstaticvoidinint_mali_coordinate(intmali_x){·

}//初始玛丽坐标(传入玛丽参考x坐标)

publicstaticvoidnew_mali(intx,inty){·

}//产生玛丽初始坐标

publicstaticvoiddie_ml(){·

publicstaticvoidml_surface(intchoose){·

}//(0.从地下上表面,1.进入过关拉旗,2.从天空掉下)玛丽回到地表

publicstaticvoidml_below(){·

}//玛丽下降到地里

publicstaticvoidml_sky(){·

}//玛丽上升到天上

publicstaticvoidup(){·

}//向上

publicstaticvoiddown(booleanch){·

}//下蹲

publicstaticvoidright(){·

}//右移

publicstaticvoidlaunch(){·

}//发射子弹

publicstaticvoidnew_cartridge(){·

}//产生子弹技能

publicstaticvoidsmall_skip(){·

}//小跳(1个单位)

publicstaticvoidbig_skip(){·

}//大跳(3个单位)

publicstaticvoidimpact_enemy(){·

}//玛丽碰撞了敌人

publicstaticvoidml_money(intx,inty){·

}//玛丽碰撞了金币箱

publicstaticvoideat_skill(intchoose,intchse){·

}//玛丽碰撞了技能

publicstaticvoideat_wall(intx,inty){·

}//玛丽也撞墙(跳起时)传入(地图)碰撞位置

publicstaticvoidup_enemy_money(intx,inty){·

}//判断敌人(或金币)是否在玛丽撞击墙的上面(传入地图坐标)

publicstaticvoidml_eat(intx,inty){·

}//判断是否吃(走动非撞墙)吃道具

publicstaticintjudge(intx,inty){·

}//判断是否合理

publicstaticvoidjudge_mali_down(){·

}//落下(直

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

当前位置:首页 > 职业教育 > 职业技术培训

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

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