
你的位置:首页>>Flash MX动画乐园>>制作拼图游戏(3)
(19) 如法泡制,分别给后面的按钮加入代码,如下所示:
第2个按钮代码:
on (release) {
b1_click(1);
}
第3个按钮代码:
on (release) {
b1_click(2);
}
第4个按钮代码:
on (release) {
b1_click(3);
}
第5个按钮代码:
on (release) {
b1_click(4);
}
第6个按钮代码:
on (release) {
b1_click(5);
}
第7个按钮代码:
on (release) {
b1_click(6);
}
第8个按钮代码:
on (release) {
b1_click(7);
}
第9个按钮代码:
on (release) {
b1_click(8);
}
(20) 选择图层1上的第一帧,在Actions列表中输入以下代码,如下所示。
sx=2;
sy=2;
tx=0;
ty=0;
nowspace=0;
block=[];
block[0] = 0;
block[1] = 1;
block[2] = 2;
block[3] = 3;
block[4] = 4;
block[5] = 5;
block[6] = 6;
block[7] = 7;
block[8] = -1;
Congratulations.stop();
mess();
function mess()
{
for (i=0; i<160; i++)
{
r=random(4);
trace("random:"+r);
if (r==0)
{
tx=sx;
ty=sy-1;
try_move();
}
else if (r==1)
{
tx=sx;
ty=sy+1;
try_move();
}
else if (r==2)
{
tx=sx-1;
ty=sy;
try_move();
}
else if (r==3)
{
tx=sx+1;
ty=sy;
try_move();
}
}
}
function try_move()
{
var who;
if (tx<0 or ty<0) return;
if (tx>2 or ty>2) return;
who=ty*3+tx;
move_pic(who);
}
function b1_click (index)
{
ty=int(index/3);
tx=index-ty*3;
trace("wx+wy:"+tx+" "+ty);
if (tx==sx and ty-1==sy)
{
move_pic(index);
}
else if (tx==sx and ty+1==sy)
{
move_pic(index);
}
else if (tx-1==sx and ty==sy)
{
move_pic(index);
}
else if (tx+1==sx and ty==sy)
{
move_pic(index);
}
check_scuess();
}
function move_pic(index)
{
var x2,y2;
wh=block[index];
ty=int(index/3);
tx=index-ty*3;
nowspace=sy*3+sx;
x2=sx*119+60;
y2=sy*153+77;
setProperty ("pic"+wh, _x, x2);
setProperty ("pic"+wh, _y, y2);
swapblock(index,nowspace);
sx=tx;
sy=ty;
}
function swapblock(a,b)
{
var temp;
temp = block[a];
block[a] = block[b];
block[b] = temp;
}
function check_scuess()
{
for (i=0; i<8; i++)
{
if (block[i]<>i) return;
}
x2=2*119+60;
y2=2*153+77;
setProperty ("pic8", _x, x2);
setProperty ("pic8", _y, y2);
Congratulations.play();
}
(21) 至此,拼图游戏的制作就完成了,按Ctrl+Enter组合键测试动画,如图9-19所示为动画中几个画面。




图9-19 游戏中的效果