Director匹配精灵游戏

问题 我正在做一个锻炼记忆力的游戏,用户在点击了一个精灵后,必须在两秒以内点击另一个与它匹配的精灵。我用全局变量来记录匹配的变量,但我不确定如何来做时间记录这部分工

  问题

  我正在做一个锻炼记忆力的游戏,用户在点击了一个精灵后,必须在两秒以内点击另一个与它匹配的精灵。我用全局变量来记录匹配的变量,但我不确定如何来做时间记录这部分工作。我已经尝试过使用”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,[#default:#first,#format:#symbol,#comment:”匹配的组”]

  addprop d,#ptimelapse,[#default:120t,#format:#integerl,#comment:”间隔时间”]

  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


  更多Acronis Disk Director Suite教程,尽在硬盘分区软件 //www.gezila.com/special/yingpanfenqu


上一篇:Director图像透明Alpha通道技术   |  下一篇:Premiere使用技巧之绘制宽银幕电影