欢迎大家光临【无师自通-教程网】您的到来是我们的荣幸。本站提供photoshop教程,ps教程,flash教程,cad教程,网页制作教程,excel教程,asp教程,vb教程,3d教程,c语言教程,html教程,coreldraw教程,dreamweaver教程,java教程,3dmax教程 等各种教程为主题的内容和服务,相信您会在这里找到您所需要的东东。无师自通伴您一生-谢谢您的光临!!
网站地图 设为首页
简繁切换 加入收藏
栏目待定 留言本站
您现在的位置: 无师自通-教程网 >> 多媒体动画 >> Flash教程 >> Flash游戏实例教程 >> 教程正文

  没有公告

教程: Flash教程-Flash游戏实例教程-Flash游戏制作--五子连珠 更多...
教程: Flash教程-Flash游戏实例教程-Flash游戏制作--五子连珠

_root.dir[k 4][0] < 15) and (y _root.dir[k 4][1] >= 0) and (y _root.dir[k 4][1] < 15) and (x _root.dir[k 4][0] >= 0)) {

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

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

score = score * 2;

}

if (score > 30) {

score = score * 2;

}

if ((_root.table[x _root.dir[k 4][0]][y _root.dir[k 4][1]] == color_bad) and (x _root.dir[k 4][0] < 15) and (y _root.dir[k 4][1] >= 0) and (y _root.dir[k 4][1] < 15) and (x _root.dir[k 4][0] >= 0)) {

score = score / 2;

}

if (maker =="white") {

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

} else {

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

}

}//初始化棋盘,根据上一步落子的不同,来计算一下一步的落子

}

}

}

}

B:再新建一个Movie clip组件,命名为blk2,进入组件编辑状态后,在第一关键桢添加as:stop();

在第六桢插入一个关键桢,并添加如下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.b add num);

duplicateMovieClip(_root.white, "white" add num, num 300);

setProperty(_root.white add num, _x, 34.7 x * 20);

setProperty(_root.white add num, _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")

}
C:新建一个Movie clip组件,并命名为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.b add num);

duplicateMovieClip(_root.white, "white" add num, num 300);

setProperty(_root.white add num, _x, 34.7 x * 20);

setProperty(_root.white add num, _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")

}

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



图6

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

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

on (release)

如图7所示:



图7

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



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

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

removeMovieClip(_root.black add i);

removeMovieClip(_root.white add i);

removeMovieClip(_root.b add i);

}

//清除棋盘上的棋子

_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

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

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

stop();

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

num = 0;

table = new Array();

computer = new Array();

player = new Array();

a_result = 0;

// Table array

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

table[i] = new Array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);

}

// Computer and player table list
for (j=0; j<15; j ) {

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

computer[j*15 i] = new Array(0,0,0,0);

player[j*15 i] = new Array(0,0,0,0);

}

}

// Make buttons

count = 0;

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

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

duplicateMovieClip(_root.b, "b"add count, count 30);

setProperty("b"add count, _x, 34.7 i * 20);

setProperty("b" add count, _y, 34.7 j * 20 );

count ;

}

}

// Eight directions

var dir = new Array();

dir[0] = new Array(1,0);

dir[1] = new Array(1,1);

dir[2] = new Array(0,1);

dir[3] = new Array(-1,1);

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

dir[5] = new Array(-1,-1);

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

dir[7] = new Array(1,-1);

playnow = "player";

removeMovieClip(_root.b112);

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

setProperty("white112", _x, 174.7);

setProperty("white112

上一页  [1] [2] [3] [4] 下一页

教程录入:admin    责任编辑:admin 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     
     
     
     

    3DsMAX实例制作:三维玻璃灯泡

    3dmax在线教程--蝴蝶

    3ds max时尚水晶鞋

    精彩Flash制作风吹草动效果动画

    教程: 3DS Max-设计实例-三维虚拟…

    3dmax7.0教程--火焰特效

    绘画技巧:Flash绘制人头造型

    3ds max 室内设计---室内效果图
    免责声明!本站资料大部分来自于互联网,其版权归原作者或其他合法者所有.如内容涉及或侵犯了您的权益,请通知本人,我将尽快处理!.欢迎您的光临。
    辽ICP备07003958号
    无师自通,伴你一生-教程网