cocos2d 中的点击持续时间
有什么想法如何处理 cocos2d 中的点击持续时间吗?
我需要在用户将手指放在某个精灵上大约 1-2 秒后执行某些操作。
谢谢。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
有什么想法如何处理 cocos2d 中的点击持续时间吗?
我需要在用户将手指放在某个精灵上大约 1-2 秒后执行某些操作。
谢谢。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(3)
您需要手动执行此操作:
更新
或tick
中,将浮动ivar值增加dt
量。检查浮点 ivar 值是否大于阈值(1.0 或 2.0 秒),以执行您的逻辑。如果您想处理多次触摸,您可能需要一种方法来将 BOOL 标志和浮动 ivar 组合附加并区分到每次触摸。
我建议在 CCLayer 和您的实现子类之间创建一个中间子类,以便您可以对实现子类隐藏该机制,并且还可以轻松重用。
You need to do it the manual way:
update
ortick
, increase the float ivar value by thedt
amount. Check if that float ivar value to perform your logic if it is larger than your threshold value (1.0 or 2.0 seconds).If you want to handle multiple touches, you might need a way to attach and differentiate the BOOL flag and float ivar combination to each touch.
I'd suggest creating an intermediate subclass between CCLayer and your implementation subclass so that you can hide the mechanism from the implementation subclass and also to allow easy reuse.
使用 UIGestureRecognizers 来完成类似的事情,可以节省大量的手动工作。在这种特殊情况下,您将需要使用 UILongPressGestureRecognizer。
顺便说一句, 手势识别器是内置的,准备好如果您使用 href="http://www.kobold2d.com" rel="nofollow">Kobold2D。
Save yourself a lot of manual work and use the UIGestureRecognizers for things like these. In this particular case you will want to use the UILongPressGestureRecognizer.
Btw, gesture recognizers are built-in, ready to use if you use Kobold2D.
要使用 UILongPressGestureRecognizer,您可以执行以下操作:
您的长按处理程序可能如下所示:
完成后,不要忘记将其删除。
To use a UILongPressGestureRecognizer, you can do something like this:
Your long press handler could look like this:
When you're finished, don't forget to remove it.