标题: Director教程:匹配精灵游戏
lonjew
元帅
Rank: 1



UID 73191
精华 1
积分 30615
帖子 14941
威望 3
金币 14931
热心 12
阅读权限 100
注册 2008-1-28
状态 离线
Director教程:匹配精灵游戏

(只是想为多媒体的发展尽一份力。以下是翻译director online 上的一篇关于匹配精灵游戏的文章,觉得简单有用,所以给大家共享。动机单纯。-------alalala)   
  问题
  我正在做一个锻炼记忆力的游戏,用户在点击了一个精灵后,必须在两秒以内点击另一个与它匹配的精灵。我用全局变量来记录匹配的变量,但我不确定如何来做时间记录这部分工作。我已经尝试过使用”the shorttime”,但我找不到一个好的方法将所得的时间相减。   
  回答
  用时钟来功能作为运算时间的基础,在dirctor里是非常复杂的部分-----尽管我不是很清楚为什么必须这样。(the time始终是作为字符串输出的,而字符串对我并没有太大的意义。)无论如何,我们并不需要担心,因为我们不使用the short time。我们确实不需要知道具体的时间是多少。我们更愿意了解一个事件和另一个事件的间隔的时间。这就是说,我们更需要一个秒表,而不是一个钟。幸运的是用timer的命令很容易做到这一点。

  Timer是一种自由的计时工具。它以”ticks”------也就是60分之1秒计时。你唯一需要掌握的命令就是”starttimer”,这会使timer复位到0。只要开始计时,你可以在任何时候检查数值以便得知过去的时间。
  让我们来写一个行为,以接受这个小小的挑战。首先,我们来对这个行为来定一下位。当你将这个行为附加到精灵上的时候,你会希望能够输入一个名称,这样对应的精灵也用同一个名称。你也会希望能够定义两次点击的延迟时间(用ticks----60ticks等于一秒)。这将是你可以将这行为重复使用到任意一组精灵上。第二步,在运行的时候,当精灵被点击,以下是需要做的事情。
  1. 判断第一次和第二次点击的是不是一组。
  2. 如果是第一次点击,那么便需要在全局变量中储存这一组的名字并且开始计时。
  3. 如果是第二次点击,那么便需要核实是否与上次点击储存在全局变量中的名称一致。
  4. 如果名称相符,那么便需要检测是否超时。
  5. 在第二次点击后并且检测后,需要将全局变量复位到0。
  以下是这个行为。   
----timermatch behavior
----copyright © 1998,zzp online,llc(它已经5岁了)   
property pgroup
propert ptimelapse
global gclickgrop
on getpropertydescriptionlist
set d=
addprop d,#pgrop,
addprop d,#ptimelapse,
return d
end
on mousedown me
if gclickgrop=#null then
set gclickgroup=pgroup
starttimer
else
if gclickgroup=pgrop then
if the timer<120 then
alert “这是一组”
else
alert “太慢”
end if
else
alert “不是一组”
end if
set gclickgroup=#null
end if
end

网友 lonjew 签名 - 网友社区 ==
顶部
[广告] 免费域名(Free Subdomain) 免费空间(Free hosting) PR查询(Google Pagerank)



当前时区 GMT+8, 现在时间是 2008-10-13 23:20
信产部ICP备案:京ICP备05066424号 北京市公安局网监备案:1101050648号

Powered by Discuz! 5.5.0
清除 Cookies - 联系我们 - 网友俱乐部 - Archiver - WAP