通行证: 用户 密码 域名空间  下载中心 社区论坛 信息公告 my小屋
联系我们
设为首页
加入收藏

 

qq,asp,php,jsp,xml,sql,.net,编程 程序 网页图象 建站经验 私服
首页 | 新闻资讯 | 编程开发 | 网页设计 | 图形图象 | 网络媒体 | 网站模板 | 数 据 库 | 投稿
论坛 | 操作系统 | 系统优化 | 网络安全 | 黑客技术 | 硬件学堂 | 硬件报价 | 服 务 器 | 地图
专题 | 应用软件 | 聊天通讯 | q q 专栏 | 建站经验 | 在线工具 | 站长club | 注 册 表 | 旧版
社会 | 游戏娱乐 | 设计欣赏 | 疑难解答 | 社区论坛 | 韩国素材 | 素材图库 | 广告服务 | 服务
当前位置:首页>>网络媒体>>director>>正文 新版上线![旧版]
注:打开慢时请稍等

director 编写“拼图游戏”(2)

http://www.iyit.net  日期:2006-5-29 8:55:01  来源:网络转载   点击:
参加讨论】director 编写“拼图游戏”
  首先,我们需要自己编写几个函数(或个人句柄)。

  第一个函数是生成 16 个随机列表的函数 generatelist。

  它的具体代码如下:

on generatelist

global gempty,randomlist

set randomlist = []

repeat with x = 1 to 16

addat(randomlist,random(x),x)

end repeat

end

  因为 lingo 没有提供对列表随机排列的功能,所以这里使用了来自 tab julius 先生的《lingo !高级指南》中的一段代码,它非常巧妙地通过循环语句中使用 addat(),random()函数生成随机列表。它在循环中先随机产生列表位置,并将其赋予 1-16 中的值,当 addat()函数向列表中相同位置添加值时,它会将位置推后,这种特殊的工作方式将不会出现重复现象。

  第二个函数也是最重要的一个函数 exchange()。 它有一个参数, . 此参数为通道号。当在一个与空白垂直或水平相邻的拼图上单击时,应将二者的角色对换,即,空白所在的通道将角色换为被单击的通道的角色,而单击的通道的角色换为空白。并将被单击的通道号赋予标识空白所在通道的变量 gempty。函数中的变量 x 为临时变量,用于作替换时暂存数据。

on exchange n

global gempty

set x to the membernum of sprite gempty

set the membernum of sprite gempty to the membernum of sprite n

set the membernum of sprite n to x

updatestage

set gempty = n

end

此函数用在每个循环帧中 1-16 号通道,用法如下:

on mouseup

if inlist(1) then

exchange 1

puppetsound "click"

end if

end

这里用到了另一个编写的函数 inlist(),此函数用于判别当前被单击的通道是否在可移动列表 m 中,如果是在列表 m 中,则返回 true。

函数 inlist() 代码如下:

on inlist cnt

set countnum = count(m)

repeat with x = 1 to countnum

if cnt = getat(m,x) then

return true

exit repeat

end if

end repeat

end

其中m 为当前可移动通道号列表,首先函数使用count()函数计算列表 m 中成员的个数,并将其赋予变量 countnum,变量 countnum 为循环检测的终止变量。循环语句中,判定 inlist() 的参数 cnt 是否在列表 m 中。如果在其中,则返回 true,并退出循环。

另外一个函数是 move(),它将返回当前可移动通道列表。

on move sth

return getat(mlist,sth)

end

它根据空白所在通道号来返回当前可移动拼图通道号列表。这里我使用了一个二维列表 mlist = [m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15,m16],其中 m1,m2,m3, ……为空白在 1,2,3,4,5, …..时,可移动通道号列表。举例,如第一张图,当空白处为 16 号通道,可以移动的通道为 12 和 15 ,即,m16 = [12,15]。所有这些列表将在on startmovie 事件句柄中初始化。具体代码如下:

on startmovie

global gempty,randomlist,first,finish,tmp,m1,m2,m3,m4,m5,

m6,m7,m8,m9,m10,m11,m12,m13,m14,m15,m16,mlist,m

set m = []

set tmp = []

set finish = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]

set m1 = [2,5]

set m2 = [1,3,6]

set m3 = [2,4,7]

set m4 = [3,8]

set m5 = [1,6,9]

set m6 = [2,5,7,10]

set m7 = [3,6,8,11]

set m8 = [4,7,12]

set m9 = [5,10,13]

set m10 = [6,9,11,14]

set m11 = [7,10,12,15]

set m12 = [8,11,16]

set m13 = [9,14]

set m14 = [10,13,15]

set m15 = [11,14,16]

set m16 = [12,15]

set mlist = [m1,m2,m3,m4,m5,m6,m7,m8,

m9,m10,m11,m12,m13,m14,m15,m16]

set first = 0

generatelist

set gempty = getone(randomlist,16)

repeat with i = 1 to 16

puppetsprite i,true

end repeat

end startmovie

< /span >

这段代码有几点需要说明:首先,初始化了列表和许多全局变量。其中first 变量赋予值 为 0 ,第一次进入循环帧时,需要根据 genertelist 函数生成的随机角色列表 randomlist来更新各个通道的角色,以产生每次进入游戏的随机图案;其次,使用 getone() 函数获取全局变量 randomlist 列表中 16号角色(即,空白角色)所在的通道号;最后,将所有 1 到 16 号通道木偶化。


编辑:黑鹰 [发送给好友] [打印本页] [关闭窗口] [返回顶部]
上一篇:director 编写“拼图游戏”(3)
下一篇:director 编写“拼图游戏”(1)
转载请注明来源:www.iyit.net
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。

 相关文章
五子棋游戏的制作(1) 五子棋游戏的制作(2) director 编写“拼图游戏”(1)
director 编写“拼图游戏”(3) 用director 制作配对记忆游戏 flash游戏制作:打砖块
flash游戏制作:弹力球 flash游戏制作:找错误 flash趣味游戏制作:猜数字
flash游戏制作:七巧板 利用条件语句制作单词游戏(as条件语句 asp作的剪包锤游戏
如何在win20003中更好的玩游戏
最新更新 热点排行 推荐新闻
发布director mx 2004
directmedia xtra 在 director 中的应
speech xtra 应用(director mx 新增 
谈谈director作品的发布模式
关于多媒体程序运行速度的研究
博客网总裁辞职
发布director mx 2004
directmedia xtra 在 director 中的应
speech xtra 应用(director mx 新增 
谈谈director作品的发布模式
关于多媒体程序运行速度的研究
director mx 2004教程--哪些人适合使用
director mx 2004教程--常用多媒体编著
director mx 2004教程--为什么选择dir
director mx 2004教程--director与fla
发布director mx 2004
directmedia xtra 在 director 中的应
speech xtra 应用(director mx 新增 
谈谈director作品的发布模式
关于多媒体程序运行速度的研究
优秀公益广告作品欣赏(8)
java数据类型转换
windows xp专业版iis连接数的更改
新开放qq免费挂级网站
优秀公益广告作品欣赏(7)
免费在qq上看在线电影电视听音乐
qq最新版下载 2006 beta2 体验新感受 
office2007简体中文版浮出水面 美图抢
qq珊瑚虫外挂4.0版本发布!
免费把qq炫铃设为本机qq的系统提示音
dreamweaver mx 2004从零开始(1)
利用css改善网站可访问性
如何让mm的脸通透可人
msn8.0下载
asp 五大高效提速技巧
如何在win20003中更好的玩游戏
qq收费头像免费使用的方法 
微软将在华推分期付款,充值卡pc 可低价
 amd处理器am2测试 风扇竟运行7分钟
exeplorer.exe错误的问题的总结、解决
 友情链接
设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
copyrights © 2004-2006 iyit.net all rights reserved.
网站合作、广告联系qq:147007642、466949678
易特网络技术 点击这里给我发消息