| 域名空间 下载中心 社区论坛 信息公告 my小屋 |
![]() |
联系我们 设为首页 加入收藏 |
|
首页 | 新闻资讯 | 编程开发 | 网页设计 | 图形图象 | 网络媒体 | 网站模板 | 数 据 库 | 投稿 论坛 | 操作系统 | 系统优化 | 网络安全 | 黑客技术 | 硬件学堂 | 硬件报价 | 服 务 器 | 地图 专题 | 应用软件 | 聊天通讯 | q q 专栏 | 建站经验 | 在线工具 | 站长club | 注 册 表 | 旧版 社会 | 游戏娱乐 | 设计欣赏 | 疑难解答 | 社区论坛 | 韩国素材 | 素材图库 | 广告服务 | 服务 |
| 新版上线![旧版] | |||||
注:打开慢时请稍等
用director 制作配对记忆游戏http://www.iyit.net 日期:2006-5-29 8:54:03 来源:网络转载 点击: |
配对记忆游戏也算是一款比较经典的小游戏了,今天和大家一起讨论如何用director来制作这类游戏。 一.游戏介绍: 配对记忆游戏的玩法很简单,在牌上按一下鼠标左键就会翻开一张卡片,最多可以同时翻开两张,如果是两张相同,就可以配对消掉,不同的话就会自动盖回去,让用户继续选择。一般会有个时间限制,必须要在规定的时间内完成。直到把所有的卡片都消去之后游戏结束。这之中其实并没有什幺特殊技巧,完全是要靠瞬间的印象来回想自己点过的卡片花色与位置,然后逐一配对消去。(如图) 二.游戏制作: 游戏制作思路和玩法一样也很简单,这里我们以一个实例来比较详细的讨论整个过程。 游戏程序设计可以分为三个部分来,游戏初始化代码(相当于出题),卡片代码和计时器代码。 (1) 游戏初始化代码: 分析: 进行游戏的初始化,这里我们用到了10种不同的卡片,由于要配对每一张卡片在舞台上都会出现两个,也就是说我们要在舞台上随机放好20张卡片,开始时不会看到卡片正面,都统一显示为背面。这里我们将卡片一次编号为p1,p2..p10。 代码: 1> 我们先要得到一个代码编号列表,由于每个卡片出现两次,所以每个都添加了两次。 tlist=[] repeat with i = 1 to 10 add tlist,i add tlist,i end repeat 2 > 将列表随机打散。 tlist=randomlist(tlist) randomlist()是一个自定义的将指定列表随机打散的函数,论坛上有相关的讨论,这里就不做具体介绍了。 3 > 然后对应的设置好这20个卡片精灵的pmember属性。 len=tlist. count repeat with i= 1 to len sprite ( 10 +i).pmember= member ( "p" &tlist[i]) end repeat pmember记录了每个卡片精灵的正面member。(不是直接将sprite( 10 +i). member = member ( "p" &tlist[i]),因为开始时都显示为背面,即 member “back”。) 4 > 相关变量初始化: --gselspnumlist记录了用户选择的精灵通道号列表。 gselspnumlist=[] --grightnum记录了用户已经配对成功的对数。 grightnum= 0 ( 2 ) 卡片精灵代码: 接下来介绍核心的卡片代码了。 1 > 定义好属性变量: property pself --自己 property spritenum --自己的精灵号 property pmember --自己正面的member property pclicked --是否已经点击 2 > 精灵初始化: on beginsprite me pself= sprite ( me . spritenum ) pclicked= 0 end 3 > 卡片的鼠标点击判断: on mousedown me --在一次判断中,一个已经点击的卡片不能再次被点击 if not pclicked then --点击后播放点选音效并显示正面图片。 puppetsound 1 , "down" pself. member =pmember pclicked= 1 --添加自身精灵号到一个记录列表,如果用户已经选择好了两个卡片就开始比较,看看是否匹配。 add gselspnumlist, spritenum if gselspnumlist. count = 2 then checkifmatch( me ) end if end 4 > 检测是否匹配(看看是否匹配) on checkifmatch me --如果匹配则播放音效 if sprite (gselspnumlist[ 1 ]). member = sprite (gselspnumlist[ 2 ]). member then puppetsound 1 , "up" --等待声音播放完成,一个自定义函数。 delaywaitsound( 1 , 1 ) sprite (gselspnumlist[ 1 ]). blend = 0 sprite (gselspnumlist[ 2 ]). blend = 0 --正确数加一 grightnum=grightnum+ 1 --如果正确的数目等于10则游戏成功。 if grightnum= 10 then go "win" end if else --延时40个ticks即2/3秒,让用户在看一下卡片就翻回背面。 delaytime( 40 , 1 ) --不匹配则将该两个卡片显示回背面 sprite (gselspnumlist[ 1 ]). member = member ( "back" ) sprite (gselspnumlist[ 2 ]). member = member ( "back" ) --pclicked=0恢复可点选状态。 sprite (gselspnumlist[ 1 ]).pclicked= 0 sprite (gselspnumlist[ 2 ]).pclicked= 0 end if --清空用户选择卡片记录列表,为后面的选择做好准备。 gselspnumlist=[] end 至此整个游戏的核心代码都介绍玩了,还剩下一个计时器代码。 (3) 计时器代码: 这里就简单的介绍一下计时器代码。 1 > 定义并初始化属性变量: property poldtime on beginsprite me initimer( me ) end on initimer( me ) --初始化计时器 --poldtime记录的游戏开始时的时间。 poldtime= the timer member ( "timer" ). text = "80" end 2 > 更新计时器显示,并检测时间是否已经用完。 on exitframe me --更新计时器,得到已用时间(单位:秒数) passed=( the timer -poldtime)/ 60 member ( "timer" ). text = string ( 80 -passed) --如果已用时间等于80秒就去到游戏结束画面。 if passed= 80 then go "lose" end if go the frame end 至此,整个游戏的代码设计过程就介绍玩了,希望大家能从中学到一些东西。本文以介绍代码设计为核心,大家完全可以把它设计得更漂亮,加上更多得创意。 下载范例 编辑:黑鹰 [发送给好友] [打印本页] [关闭窗口] [返回顶部] 上一篇:director生成文件减肥技巧 下一篇:director中事件发生的顺序及其意义 转载请注明来源:www.iyit.net 特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。 |
| 最新更新 | 热点排行 | 推荐新闻 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| 友情链接 | ||||||
| 设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接 |
| |||||||