当前位置:软件学习 > Director >>

Director 编写“拼图游戏”(3)

Director 编写“拼图游戏”
  我已经讲述了所有编写的函数,剩下的一步是最后的,也是最关键的一步。即,在循环帧的帧脚本中调用这些函数。

具体帧脚本如下:

global gEmpty,randomList,First,Finish,Tmp,m1,m2,m3,m4,m5,m6,m7,

m8,m9,m10,m11,m12,m13,m14,m15,m16,mList,M

on enterframe

if First = 0 then

repeat with i = 1 to 16

puppetsprite i,TRUE

set the memberNum of sprite i to getAt(randomList,i)

end repeat

set First = 1

end if

if Finish = Tmp then

go the frame + 1

else

set tmp = []

end if

set M = move(gEmpty)

end

在进入帧事件句柄 on enterframe 中,首先根据变量 First 来判定是否第一次进入当前循环帧,判定条件是 First 是否为0。如果是,则根据 randomList 列表中的值来更新通道 1 - 16 的角色。更新后,将变量 First 赋值为 1 。以免下次在执行此操作。然后比较最终列表 Finish与临时列表 Tmp 之间是否相同,如果相同则,拼图结束。跳到结束帧。否则继续在当前帧循环,并将tmp 列表赋值为空,以免在 tmp 列表因 on exitFrame 的操作而叠加。最后取得空白在当前通道时的可移动列表 M。

on exitFrame

repeat with x = 1 to 16

addAt(Tmp,the memberNum of sprite x )

end repeat

go the frame

end

在退出帧事件句柄 on exitFrame 中,通过循环生成当前各个通道的角色临时列表 Tmp,并用 go the frame 在当前帧循环。

所有程序代码都已讲述完毕。如果将这 16 张图片换成您喜爱的图片的拼图,你可以生成自己风格的拼图游戏。通过上面的讲述,您会发现 Lingo 编程的确与众不同。这样的游戏可以用如此简单的代码在很短的时间内编写完毕。(完)

[1]

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,