我正在制作一款通用的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))
}
}
}
答案 0 :(得分:1)
所以我认为这里存在某种错误。
首先,您开始在索引1的数组中循环,这实际上是数组中的第二个元素。 Ballnode [0]是第一个指数。除非您将此索引保留为空,否则根本没有设备应该能够访问第一个元素。其次,如果你注意到当你移动精灵的位置时你可以访问它们,那么这意味着它们中的一些重叠。您应检查图像并裁剪或根据需要进行编辑,以确保它们合适而不重叠。众所周知,iOS 9有许多错误,看起来你可能已经发现了一个。我的建议是将iOS 8作为您的默认测试操作系统。