iOS   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 作为一个单元旋转时重叠的SpriteNodes大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我在使用 Swift 3和Spritekit开发应用程序时遇到了一个问题.为了检测碰撞,我制作了四个独立的三角形组成一个正方形.当我将这些三角形作为一个单元旋转时,它们重叠并且在旋转期间不保持正方形的形状(它们彼此重叠),但是一旦旋转完成就会恢复正常.

这是我用于轮换的代码:@H_801_7@

override func touchesBegan(_ touches: Set<UITouch>,with event: UIEvent?) {
    for touch in touches{
        let LOCATIOn = touch.LOCATIOn(in: self)

        if LOCATIOn.x < 0 {
            blueTriLeft.run(SKAction.rotate(byAngle: CGFloat(M_PI_2),duration: 0.2))
            redTriLeft.run(SKAction.rotate(byAngle: CGFloat(M_PI_2),duration: 0.2))
            yellowTriLeft.run(SKAction.rotate(byAngle: CGFloat(M_PI_2),duration: 0.2))
            greenTriLeft.run(SKAction.rotate(byAngle: CGFloat(M_PI_2),duration: 0.2))

        } else if LOCATIOn.x > 0 {
            blueTriRight.run(SKAction.rotate(byAngle: CGFloat(-M_PI_2),duration: 0.2))
            redTriRight.run(SKAction.rotate(byAngle: CGFloat(-M_PI_2),duration: 0.2))
            yellowTriRight.run(SKAction.rotate(byAngle: CGFloat(-M_PI_2),duration: 0.2))
            greenTriRight.run(SKAction.rotate(byAngle: CGFloat(-M_PI_2),duration: 0.2))
        }
    }
}

下面是我的广场的图片,由四个独立的三角形组成@H_801_7@

ios – 作为一个单元旋转时重叠的SpriteNodes@H_801_7@@H_801_7@@H_801_7@

请随时向我询问您需要查看的任何其他代码,任何输入都有帮助.此外,我无法在行动中得到重叠的问题,所以提前抱歉,但我会尽力去做.@H_801_7@

解决方法@H_197_21@
问题是你正在旋转单个三角形,它们会根据自己的坐标系进行旋转.想象一下,每个三角形都固定在中心,并围绕它旋转.显然三角形将重叠.您应该围绕一个独特的点旋转它们.在您的情况下,最简单的方法是将它们添加到同一父节点,然后旋转父节点:

// This is the configuration to do in sceneDidLoad
let node = SKNode()
node.addChild(blueTriLeft) 
node.addChild(redTriLeft)
node.addChild(yellowTriLeft)
node.addChild(greenTriLeft)
scene.addChild(nodE)

// Inside touchesBegan(_:,with:)
node.run(SKAction.rotate(byAngle: CGFloat(-M_PI_2),duration: 0.2))

大佬总结

以上是大佬教程为你收集整理的ios – 作为一个单元旋转时重叠的SpriteNodes全部内容,希望文章能够帮你解决ios – 作为一个单元旋转时重叠的SpriteNodes所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。