在 touchesMoved 函数中移动 2 个不同的 Spritenodes

Posted

技术标签:

【中文标题】在 touchesMoved 函数中移动 2 个不同的 Spritenodes【英文标题】:Move 2 different Spritenodes in the touchesMoved function 【发布时间】:2018-04-23 01:15:05 【问题描述】:

我正在尝试在 Swift 中制作 2 人游戏,到目前为止,我可以检测到多个触摸并单独移动每个节点,但是当两个玩家同时尝试移动他们的节点时,一个总是控制并移动两个节点同时,当两个节点都被触摸时,我的代码如下:

if Touching && Touching2 
        for touch: AnyObject in touches 
            let Loc = (touch as! UITouch).location(in: self)
            let PrevLoc = (touch as! UITouch).previousLocation(in: self)
            let Shell = self.childNode(withName: ShellCategory) as! SKSpriteNode
            var NewPos = Shell.position.x + (Loc.x - PrevLoc.x)
            NewPos = max(NewPos, Shell.size.width / 2)
            NewPos = min(NewPos, self.size.width - Shell.size.width / 2)
            Shell.position = CGPoint(x:NewPos, y: Shell.position.y)

            let Loc2 = (touch as! UITouch).location(in: self)
            let PrevLoc2 = (touch as! UITouch).previousLocation(in: self)
            let Shell2 = self.childNode(withName: ShellCategory2) as! SKSpriteNode
            var NewPos2 = Shell.position.x + (Loc2.x - PrevLoc2.x)
            NewPos2 = max(NewPos2, Shell2.size.width / 2)
            NewPos2 = min(NewPos2, self.size.width - Shell2.size.width / 2)
            Shell2.position = CGPoint(x:NewPos2, y: Shell2.position.y)
        
    

先谢谢了。

【问题讨论】:

【参考方案1】:

好吧,经过一番调查,我终于找到了我需要的东西,我将把它留在这里,以供未来可能会遇到类似情况的开发人员使用。

Multi-touch gesture in Sprite Kit

【讨论】:

以上是关于在 touchesMoved 函数中移动 2 个不同的 Spritenodes的主要内容,如果未能解决你的问题,请参考以下文章

UIScrollview touchesbegin,touchesmoved,touchesendactions

在滚动视图中的自定义视图中使用触摸进行缩放。 touchesMoved 未调用

TVOS UIViewController 没有收到 touchesBegan 或 touchesMoved

在 Swift 中使用 touchesMoved 跟踪触摸

在 touchesMoved 委托中获取像素的 RGB

使用 TouchesMoved 跟踪两个手指