在Livecode中等待而不等待?

时间:2014-07-10 03:53:47

标签: livecode

我创造了匹配的游戏。我有命令问题"等待"。我的过程就是当我将对象拖动到对象时,如果它与对象1匹配则是隐藏并等待2秒。我等的时候可以将对象拖到另一个对象上。但问题是如果我将对象1拖动到对象2它将等待2秒后该对象2被隐藏并且我等待1秒之后我将对象3拖动到对象4它等待2秒后该对象4被隐藏。如果我一起做对象2,则隐藏对象4。

这是我的代码:

on mouseUp
  --check object if match
  wait 2 seconds with messages
  --object hide
end mouseUp

2 个答案:

答案 0 :(得分:0)

我完全不了解你的问题,但根据我的理解,如果两个对象匹配同时能够继续玩你的游戏,你想要执行一些语法。这是一些显示如何操作的代码。

on mouseDown
  set the loc of me to the mouseLoc
end mouseDown

on mouseUp
  if match() then
    killOldMessages
    hide me
    send "doSomething" to me in 2 seconds
  end if
end mouseUp

on killOldMessages
  put the pendingMessages into myMessages
  repeat for each line myMsg in myMessages
    if myMsg contains the long id of me and myMsg contains "doSomething" then
      cancel item 1 of myMsg
    end if
  end repeat
end killOldMessages

on doSomething
  if match() then
    // execute this script
  end if
end doSomething

必不可少的是,您检查对象是否匹配两次:一次发送消息,另一次是收到消息。在这种情况下,消息是doSomething。

此外,您可能希望doSomething处理程序只执行一次,即使用户在过去(例如6秒)内引发了多条消息。 killOldMessages处理程序确保doSomething不会多次执行。

答案 1 :(得分:0)

以下改变之夜做你需要的......

on mouseUp
  -- check object if match
  send "hideMe" to me in 2 seconds
end mouseUp


on hideMe
  hide me
end hideMe

为对象的脚本编写的。

你也可以在卡片级编码..

on mouseUp
  -- check object if match
  put the long id of the target into tTarget
  send "hideObject tTarget" to this card in 2 seconds
end mouseUp


on hideObject pObject
  hide pObject
end hideObject