毕业论文 论文提纲 论文写作 公文范例 教育论文 教育学论文 师范教育 学术论文     论文指导*
                     
 
   
   
   
   
           
 

当前位置:课件115学培吧(kj115.com)→FLASH课件游戏开发教程→文章系列

 
 
标题:学习FLASH推箱子游戏分析(三)推动箱子
 
展示台

文章来源 作者:admin 密码:admin 整理:湖北金鹰

◇游戏开发栏目简介
内容是FLASH课件游戏制作教程,适合开发课件游戏,增加课件的感染力,适合高手学习,基础学习者可以参加我站的游戏开发视频教程的学习是最佳之选。

其它教程文章还有网侠教程图文教程等。
学习过程中如果需要相关的软件下载,你可以到本站软件下载专区去看看。

---------------

论文相关服务
 

湖北金鹰课件吧

有了前面两节的基础,对于地图的铺设。以及人物的控制。我想,大家都不会再陌生了吧。这节中关于地图的铺设以及人物的控制方面,就不再缀述了。另外,关于地图的铺设部分,我故意多加了一些无用的数据,所以,请大家要注意一下。呵呵。
关于推动箱子的部分中,重点就是关于箱子以及人物的控制。在一般情况一下,当接收键盘信息为上(假设)的时候,人物或者箱子(我们操纵的对象)就向上移动。
而这里面,我们移动的时候,假设人物的上面是树,或者其他障碍物的时候。就不能移动了。
而当,上面第二个位置不是障碍物的时候。人物跟箱子才同时向上移动。这样,才能形成推动的效果。
同理,向右,向左,向下亦如此。

AS层中代码如下
//背景图的列数和行数,此处根据您先前所绘制的地图数据来确定...
varcol=16;
varrow=15;
//定义每个单元的长与宽
varblock_width=40;
varblock_height=40;
//初始化所有数组
varditu_array=newArray();
varbox_array=newArray();
varmubiao_array=newArray();
//
//地图数据
varditu=newArray();
//定义地图的数据内容,此处数据有部分是故意多加的,大家要注意哦,可以自己写一下。呵呵。按照前面一章节的自己重写一下吧。
ditu[0]=newArray(0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,4,2,4,3,1,0,0,0,0,0,0,0,0,1,3,2,4,6,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
vartree:Number=1;
varback_ground:Number=2;
varkongbai:Number=3;
varBOX:Number=4;
varlevel_num:Number=0;
varcol_num:Number;
varrow_num:Number;
//自定义一个复制地图的函数
functiondrawMap(level_num){
for(vari=0;i<row;i++){
//初始化二维数组
ditu_array[i]=newArray();
box_array[i]=newArray();
//进行循环复制,这个前面的章节中有详细介绍,在此不再缀述
for(varj=0;j<col;j++){
varnum=ditu[level_num][i*col+j];
//根据地图数据进行mc的复制及摆放
if(num==0){
//如果是空白位置,就直接跳过
continue;
}else{
//如果是非零位置,就先复制出背景,并根据行列号进行其他操作
//根据getNextHighestDepth()方法先定义一个短点的变量
vartemp=getNextHighestDepth();
//复制库中的元件,并动态添加到新元件
attachMovie("source","source"+temp,temp);
varmc=_root["source"+temp];
//设置复制元件的座标位置
mc._x=j*block_width+bgMap_mc._x;
mc._y=i*block_height+bgMap_mc._y;
//给mc增加一个类别属性zhenghaoma
mc.zhenghaoma=num;
ditu_array[i][j]=mc;
switch(num){
//根据num的值显示不同的内容.
casetree:
mc.gotoAndStop(tree);
break;
caseback_ground:
mc.gotoAndStop(back_ground);
break;
casekongbai:
mc.gotoAndStop(kongbai);
mubiao_array.push([i,j]);
break;
case4:
mc.gotoAndStop(back_ground);
//
vartemp=getNextHighestDepth();
attachMovie("box","box"+temp,temp);
varbox=_root["box"+temp];
box._x=j*block_width+bgMap_mc._x;
box._y=i*block_height+bgMap_mc._y;
box_array[i][j]=box;
break;
case5:
mc.gotoAndStop(kongbai);
mubiao_array.push([i,j]);
//
vartemp=getNextHighestDepth();
attachMovie("box","box"+temp,temp);
varbox=_root["box"+temp];
box._x=j*block_width+bgMap_mc._x;
box._y=i*block_height+bgMap_mc._y;
box_array[i][j]=box;
break;
case6:
mc.gotoAndStop(back_ground);
//
my_person._x=j*block_width+bgMap_mc._x;
my_person._y=i*block_height+bgMap_mc._y;
row_num=i;
col_num=j;
break;
}
}
}
}
//让箱子永远在目标层的上面
for(iin_root){
vars:String=_root[i]._name;
if(s.substring(0,3)=="box"){
_root[i].swapDepths(getNextHighestDepth());
}
}
my_person.swapDepths(getNextHighestDepth());
}
//运行刚定义的函数
drawMap(level_num);
//建立键盘侦听,接收键盘消息
varkeyListener:Object=newObject();
keyListener.onKeyDown=function(){
switch(Key.getCode()){
caseKey.UP:
dir="上";
break;
caseKey.DOWN:
dir="下";
break;
caseKey.LEFT:
dir="左";
break;
caseKey.RIGHT:
dir="右";
break;
}
movePerson();
};
//添加监听
Key.addListener(keyListener);
//
//根据键盘消息进行位置移动
functionmovePerson(){
//根据按键信息,确定人物的位置方向
my_person.gotoAndStop(dir);
switch(dir){
case"上":
if(ditu_array[row_num-1][col_num].zhenghaoma!=tree){
if(box_array[row_num-1][col_num]==undefined){
//如果这个位置上没有箱子,人向上移动一格
my_person._y=ditu_array[row_num-1][col_num]._y;
row_num--;
}else{
//这里摆放有一个箱子
if(ditu_array[row_num-2][col_num].zhenghaoma!=tree&&box_array[row_num-2][col_num]==undefined){
//下面第二个位置上不是树,也不是箱子,人物和箱子一起向上移动
box_array[row_num-1][col_num]._y=ditu_array[row_num-2][col_num]._y;
box_array[row_num-2][col_num]=box_array[row_num-1][col_num];
box_array[row_num-1][col_num]=undefined;
my_person._y=ditu_array[row_num-1][col_num]._y;
row_num--;
}
}
}
break;
case"右":
if(ditu_array[row_num][col_num+1].zhenghaoma!=tree){
if(box_array[row_num][col_num+1]==undefined){
//如果这个位置上没有箱子,人物向上移动
my_person._x=ditu_array[row_num][col_num+1]._x;
col_num++;
}else{
//这里摆放有一个箱子
if(ditu_array[row_num][col_num+2].zhenghaoma!=tree&&box_array[row_num][col_num+2]==undefined){
//下下个位置上不是树,也不是箱子,人物和箱子可以一起向上移动
box_array[row_num][col_num+1]._x=ditu_array[row_num][col_num+2]._x;
box_array[row_num][col_num+2]=box_array[row_num][col_num+1];
box_array[row_num][col_num+1]=undefined;
my_person._x=ditu_array[row_num][col_num+1]._x;
col_num++;
}
}
}
break;
case"下":
if(ditu_array[row_num+1][col_num].zhenghaoma!=tree){
if(box_array[row_num+1][col_num]==undefined){
//如果这个位置上没有箱子,人物可以向下移动
my_person._y=ditu_array[row_num+1][col_num]._y;
row_num++;
}else{
//这里摆放有一个箱子
if(ditu_array[row_num+2][col_num].zhenghaoma!=tree&&box_array[row_num+2][col_num]==undefined){
//下下个位置上不是墙,也不是箱子,人物和箱子可以一起向下移动
box_array[row_num+1][col_num]._y=ditu_array[row_num+2][col_num]._y;
box_array[row_num+2][col_num]=box_array[row_num+1][col_num];
box_array[row_num+1][col_num]=undefined;
my_person._y=ditu_array[row_num+1][col_num]._y;
row_num++;
}
}
}
break;
case"左":
if(ditu_array[row_num][col_num-1].zhenghaoma!=tree){
if(box_array[row_num][col_num-1]==undefined){
//如果这个位置上没有箱子,人物可以向上移动
my_person._x=ditu_array[row_num][col_num-1]._x;
col_num--;
}else{
//这里摆放有一个箱子
if(ditu_array[row_num][col_num-2].zhenghaoma!=tree&&box_array[row_num][col_num-2]==undefined){
//下下个位置上不是墙,也不是箱子,人物和箱子一起向上移动
box_array[row_num][col_num-1]._x=ditu_array[row_num][col_num-2]._x;
box_array[row_num][col_num-2]=box_array[row_num][col_num-1];
box_array[row_num][col_num-1]=undefined;
my_person._x=ditu_array[row_num][col_num-1]._x;
col_num--;
}
}
}
break;
}
}

 

 
课件115学培吧(湖北金鹰)欢迎您!永久免费服务网址:http://www.kj115.com
   
 

学员众多的FLASH课件学习基地,成万免费FLASH课件制作教程在线学习,还有免费内容课件教程、视频教程、课件技巧、课件探讨、课件欣赏、课件展示、实用教程、课件界面、课件脚本、课件游戏、课件下载、课件封面、课文内容图片、课文人物图片库、课件素材、图片素材、声音素材、动物素材、背景图片、背景资料、背景边框、课件顶栏图片素材、Dreamweaver教程、Dreamweaver网页课件教程、软件下载。承接学习和培训,承接课件订制,课件修改等所有课件相关服务。
本站主要业务:┃flash课件制作视频教程培训┃承接全国竞赛flash课件┃论文代写代发┃代办课件国家级获奖证书┃
联系:QQ:444860709 手机:13339817386


 
 

业务办理
鄂ICP备08005724号