【发布时间】:2015-04-07 18:59:11
【问题描述】:
我正在尝试使用 swift 在 sprite kit 中制作我的第一款游戏
目前一切正常,但我不知道如何处理屏幕上的触摸和按住
我正在尝试在玩家按住触摸时进行跳跃,但我找不到此事件
谢谢 ;)
【问题讨论】:
标签: ios swift sprite-kit touch
我正在尝试使用 swift 在 sprite kit 中制作我的第一款游戏
目前一切正常,但我不知道如何处理屏幕上的触摸和按住
我正在尝试在玩家按住触摸时进行跳跃,但我找不到此事件
谢谢 ;)
【问题讨论】:
标签: ios swift sprite-kit touch
你可以试试这个:
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 触摸事件
【讨论】:
据我了解,您需要处理两种情况 1 - 玩家点击屏幕/节点 - 例如跳 2 - 玩家点击并按住 - 例如改变跳跃力
我认为您需要同时处理“touchesBegan”和“touchesEnded”。 在“touchesBegan”中启动特殊计时器并在一些延迟后(例如 0.5 秒)开始播放特殊动画(显示当前跳跃力的跳跃力指示器) on "touchesEnded" - 停止计时器,停止动画并计算结果跳跃力(基于计时器的值)。
如果您还需要处理跳跃的方向(角度) - 在这种情况下,您还应该处理“touchesMoved”并根据触摸位置计算当前角度。
【讨论】: