首页 > 网站 > 媒体动画 > 正文

Director实例剖析:Director 设计"拼图游戏"(3)

2024-09-08 19:27:04
字体:
来源:转载
供稿:网友
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 编程的确与众不同。这样的游戏可以用如此简单的代码在很短的时间内编写完毕。(完)

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表