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

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

 
 
标题:教你Flash游戏制作--五子连珠(二)
 
展示台

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

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

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

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

论文相关服务
 

湖北金鹰课件吧

//显示棋子

_root.display="Xpos:"+(x+1);

temp=chr(y+65);

_root.display1="Ypos:"+temp;

_root.playnow="player";

//判断是否获胜

xx=x;

yy=y;

for(k=0;k<4;k++){

if(_root.a_result<>6){

_root.a_result=0;

x=xx;

y=yy;

while((_root.table[y][x]==2)and(y+_root.dir[k][1]<16)and(x+_root.dir[k][0]>=-1)and(x+_root.dir[k][0]<16)and(y+_root.dir[k][1]>=-1)){

x=x+_root.dir[k][0];

y=y+_root.dir[k][1];

//"_root.table["+y+"]["+x+"]="+_root.table[y][x]

_root.a_result=_root.a_result+1;

}

x=xx;

y=yy;

while((_root.table[y][x]==2)and(y+_root.dir[k+4][1]<16)and(x+_root.dir[k+4][0]>=-1)and(x+_root.dir[k+4][0]<16)and(y+_root.dir[k+4][1]>=-1)){

x=x+_root.dir[k+4][0];

y=y+_root.dir[k+4][1];

_root.a_result=_root.a_result+1;

}

if(_root.a_result==6){

_root.playnow="nobody";

}

}

}

if(_root.playnow=="nobody"){

_root.gameoverman.gotoAndPlay(2);

}

}

C:新建一个Movieclip组件,并命名为bb,此组件用来计算电脑如何走棋,进入组件编辑状态后,在图层layer1绘制一个有填充色的矩形,然后在第5桢插入一个关键桢,在同样位置绘制一个大小相同填充色不同的矩形。新建一个图层,在矩形里输入提示文字:电脑走棋,然后再新建一个图层Action,在第一桢添加AS:stop();,在第8桢插入一个关键桢,在此桢添加如下AS:

if(_root.playnow=="computer"){

//初始化棋盘

_root.func.makelist("white");

_root.func.makelist("black");

//调用自定义函数

max_computer=0;

max_player=0;

k=0;

//定义三变量

for(j=0;j<15;j++){

for(i=0;i<15;i++){

for(k=0;k<4;k++){

if(_root.computer[j*15+i][k]==max_computer){

rndnum=random(100)+1;

if(rndnum>50){

max_computer=_root.computer[j*15+i][k];

xc=i;

yc=j;

}

}

if(_root.computer[j*15+i][k]>max_computer){

max_computer=_root.computer[j*15+i][k];

xc=i;

yc=j;

}

if(_root.player[j*15+i][k]>max_player){

max_player=_root.player[j*15+i][k];

xp=i;

yp=j;

}

}

}

}

if(max_computer>max_player){

x=xc;

y=yc;

}else{

x=xp;

y=yp;

}

//绘制棋子

num=y*15+x;

removeMovieClip(_root.baddnum);

duplicateMovieClip(_root.white,"white"addnum,num+300);

setProperty(_root.whiteaddnum,_x,34.7+x*20);

setProperty(_root.whiteaddnum,_y,34.7+y*20);

_root.table[y][x]=2;

//显示棋子

_root.display="Xpos:"+(x+1);

temp=chr(y+65);

_root.display1="Ypos:"+temp;

_root.playnow="player";

//判断是否获胜

xx=x;

yy=y;

for(k=0;k<4;k++){

if(_root.a_result<>6){

_root.a_result=0;

x=xx;

y=yy;

while((_root.table[y][x]==2)and(y+_root.dir[k][1]<16)and(x+_root.dir[k][0]>=-1)and(x+_root.dir[k][0]<16)and(y+_root.dir[k][1]>=-1)){

x=x+_root.dir[k][0];

y=y+_root.dir[k][1];

//"_root.table["+y+"]["+x+"]="+_root.table[y][x]

_root.a_result=_root.a_result+1;

}

x=xx;

y=yy;

while((_root.table[y][x]==2)and(y+_root.dir[k+4][1]<16)and(x+_root.dir[k+4][0]>=-1)and(x+_root.dir[k+4][0]<16)and(y+_root.dir[k+4][1]>=-1)){

x=x+_root.dir[k+4][0];

y=y+_root.dir[k+4][1];

_root.a_result=_root.a_result+1;

}

if(_root.a_result==6){

_root.playnow="nobody";

}

}

}

//游戏结束

if(_root.playnow=="nobody"){

_root.gameoverman.gotoAndPlay(2);

}

}

最后的时间线如图6所示:

图6

D:再新建一个movieclip组件,命名为buttonclip,此组件用来控制双方的落子,进入组件编辑状态后,将前面做好的隐形按钮拖放到编辑区中,然后给第一桢添加AS:stop();.

E:最后再制作一个movieclip,命名为gameover,此组件用来判断游戏是否结束,也就是判断是缶有一方已经连好了五颗棋子。进入组件编辑状态后,连续建立四个图层,分别为layer1,layer2,layer3和action,在layer1,layer2,layer3的第一桢插入空白,然后在第2桢绘制电脑获胜的提示信息,并将Replay按钮拖到编辑区中,给按钮添加As:

on(release){

gotoAndPlay("endit");

}

如图7所示:

图7

在layer1,layer2,layer3的第三桢按照同样的方法设置您胜利的提示信息,如图8所示:

图8

然后回到图层action,接下来就要添加具体的控制Action了,在此图层的前三个关键桢分别添加as:stop();,在第四关键桢添加如下AS:

for(i=0;i<=225;i++){

removeMovieClip(_root.blackaddi);

removeMovieClip(_root.whiteaddi);

removeMovieClip(_root.baddi);

}

//清除棋盘上的棋子

_root.gotoAndPlay("run");

//跳转到游戏的开始

最后的时间线如图9所示:

图9

布置主场景:

游戏的主要工作完成后,接下来需要布置主场景了。

首先使用绘图工具绘制出游戏中的棋盘,棋盘大小为15*15的矩阵,然后给棋盘标上横向和纵向的标识,如图10所示:

图10

分别将组件white,black,buttonclip,blk,bb和gameover拖到舞台的合适位置,如图11所示:

图11

组件white的实例名为:black

组件black的实例名为:white

组件buttonclip的实例名为:b

组件blk的实例名为:func

组件bb的实例名为:computerrun

组件gameover的实例名为:gameoverman

然后在棋盘上绘制两个Dynamictext动态文本框,用来显示上一步落子的位置,分别设置变量名为display和display1。

最后,给第一关键祯添加as:

stop();

urls="边城浪子-闪客帝国";

num=0;

table=newArray();

computer=newArray();

player=newArray();

a_result=0;

//Tablearray

for(i=0;i<15;i++){

table[i]=newArray(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);

}

//Computerandplayertablelist

for(j=0;j<15;j++){

for(i=0;i<15;i++){

computer[j*15+i]=newArray(0,0,0,0);

player[j*15+i]=newArray(0,0,0,0);

}

}

//Makebuttons

count=0;

for(j=0;j<15;j++){

for(i=0;i<15;i++){

duplicateMovieClip(_root.b,"b"addcount,count+30);

setProperty("b"addcount,_x,34.7+i*20);

setProperty("b"addcount,_y,34.7+j*20);

count++;

}

}

//Eightdirections

vardir=newArray();

dir[0]=newArray(1,0);

dir[1]=newArray(1,1);

dir[2]=newArray(0,1);

dir[3]=newArray(-1,1);

dir[4]=newArray(-1,0);

dir[5]=newArray(-1,-1);

dir[6]=newArray(0,-1);

dir[7]=newArray(1,-1);

playnow="player";

removeMovieClip(_root.b112);

duplicateMovieClip(_root.white,"white112",142);

setProperty("white112",_x,174.7);

setProperty("white112",_y,174.7);

//Thefirstblackpoint

table[7][7]=2;

 

到此为止,五子连珠这个游戏就制作完成了,本游戏属于较高级的游戏制作,需要有一定的Action编程基础,不过如果您对Action不太了解,相信学完本实例后,可以在一定程度上提高您的Action水平。

 

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

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


 
 

业务办理
鄂ICP备08005724号