触摸功能在 iOS 中无法正常工作

Touch functions do not work properly in iOS

我正在制作一个通用的 SpriteKit 游戏。我测试了 iPhone 和 iPad 我的游戏。在 iPhone 中,一切正常,在模拟器中也是如此,但在 iPad 中,触摸功能在游戏场景中无法正常工作。例如;在游戏场景中,我有 4 个精灵,我可以触摸其中一个,但其他精灵在 iPad 中不起作用。有什么想法吗?到底是怎么回事 ?

    for touch in touches {
        let location = touch.locationInNode(self)
        for var i=1; i<ballNode.count; i++ {
            if nodeAtPoint(location) == ballNode[i].node && !ballNode[i].character.locked  {
                ballNode[i].touchingNode = true
                ballNode[i].angelLabel.hidden = false



                let seq = SKAction.sequence([fadeIn, fadeOut])
                ballNode[i].node.childNodeWithName("laserAni")!.hidden = false
                ballNode[i].node.childNodeWithName("laserAni")!.runAction(SKAction.repeatActionForever(seq))

                if ballNode[i].node.name == BallTypes.multipleGuns {
                    ballNode[i].node.childNodeWithName("laserAni2")!.hidden = false
                    ballNode[i].node.childNodeWithName("laserAni2")!.runAction(SKAction.repeatActionForever(seq))

                }

            }

        }

所以我认为这里存在某种错误。

首先,您从索引 1 处的数组开始循环,这实际上是数组中的第二个元素。 Ballnode[0] 是第一个索引。除非您将此索引保留为空白,否则根本没有设备能够访问第一个元素。其次,如果你注意到当你移动精灵的位置时你可以访问它们,那么这意味着它们中的一些重叠了。您应该检查您的图像并根据需要裁剪或编辑以确保它们适合而不重叠。 iOS 9 已知有很多错误,看来您可能已经发现了一个。我的建议是信任 iOS 8 作为默认测试 OS.