【问题标题】:Sprite kit touch and hold with swiftSprite 套件快速触摸并按住
【发布时间】:2015-04-07 18:59:11
【问题描述】:

我正在尝试使用 swift 在 sprite kit 中制作我的第一款游戏

目前一切正常,但我不知道如何处理屏幕上的触摸和按住

我正在尝试在玩家按住触摸时进行跳跃,但我找不到此事件

谢谢 ;)

【问题讨论】:

    标签: ios swift sprite-kit touch


    【解决方案1】:

    你可以试试这个:

    override func touchesBegan(touches: NSSet, withEvent event: UIEvent)  {
     // action when the user touches the screen 
     // you can know where did he touch the screen like this
    let touchLocation = touches?.anyObject().locationInView(self/* or your view */) 
    }
    override func touchesMoved(touches: NSSet, withEvent event: UIEvent) {
       // your code here 
    }
    override func touchesEnded(touches: NSSet, withEvent event: UIEvent) {
           // your code here
    }
    

    这些方法将有助于屏幕上的 cary 触摸事件

    【讨论】:

    • 感谢 Mohamed,我知道这种方法,但我怎么能触摸并按住!!
    • 我认为您可以处理 touchesHold 的那些方法,例如在您的 gameScene 中设置 bool 类型的属性,并在 touchesBegan 和 touchesMoved 中将其设置为 true,并在 touchesEnded 中将其设置为 false,这样您可以知道你什么时候应该发挥跳跃的力量。希望对你有帮助。
    【解决方案2】:

    据我了解,您需要处理两种情况 1 - 玩家点击屏幕/节点 - 例如跳 2 - 玩家点击并按住 - 例如改变跳跃力

    我认为您需要同时处理“touchesBegan”和“touchesEnded”。 在“touchesBegan”中启动特殊计时器并在一些延迟后(例如 0.5 秒)开始播放特殊动画(显示当前跳跃力的跳跃力指示器) on "touchesEnded" - 停止计时器,停止动画并计算结果跳跃力(基于计时器的值)。

    如果您还需要处理跳跃的方向(角度) - 在这种情况下,您还应该处理“touchesMoved”并根据触摸位置计算当前角度。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多