iOS7 Sprite Kit如何在SKSpriteNode上进行长按或其他手势?

iOS7 Sprite Kit如何在SKSpriteNode上进行长按或其他手势?,第1张

概述我正在构建基于精灵工具包的游戏,缺少“右键单击”实际上很难向用户传达一些重要信息.作为解决方案,我正在考虑手势,如长按,双指敲击等. 如何在SKSpriteNode上实现手势? 这是我正在使用的当触摸SKSpriteNode时获得类似按钮的行为. -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { [self 我正在构建基于精灵工具包的游戏,缺少“右键单击”实际上很难向用户传达一些重要信息.作为解决方案,我正在考虑手势,如长按,双指敲击等.

如何在SKSpriteNode上实现手势?

这是我正在使用的当触摸SKSpriteNode时获得类似按钮的行为.

-(voID)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {    [self selectSkill:YES];}
解决方法 在UIGestureRecognizer之前,您保留了状态变量,这些变量跟踪触及何时何地开始触摸的位置.这是一个快速解决方案,其中buttontouched:是一种检查UItouch是否在您正在检查的按钮上的方法.

var touchstarted: NSTimeInterval?let longTapTime: NSTimeInterval = 0.5overrIDe func touchesBegan(touches: NSSet,withEvent event: UIEvent) {    if let touch = touches.anyObject() as? UItouch {        if buttontouched(touch) {            touchstarted = touch.timestamp        }    }}overrIDe func touchesEnded(touches: NSSet,withEvent event: UIEvent) {    if let touch = touches.anyObject() as? UItouch {        if buttontouched(touch) && touchstarted != nil {            let timeEnded = touch.timestamp            if timeEnded - touchstarted! >= longTapTime {                handleLongTap()            } else {                handleShortTap()            }        }    }    touchstarted = nil}overrIDe func touchesCancelled(touches: NSSet!,withEvent event: UIEvent!) {    touchstarted = nil}
总结

以上是内存溢出为你收集整理的iOS7 Sprite Kit如何在SKSpriteNode上进行长按或其他手势?全部内容,希望文章能够帮你解决iOS7 Sprite Kit如何在SKSpriteNode上进行长按或其他手势?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1040136.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存