具体帧脚本如下:
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 编程的确与众不同。这样的游戏可以用如此简单的代码在很短的时间内编写完毕。(完)
新闻热点
疑难解答