iOS Swift SpriteKit:如何在其他函数中使用精灵



我已经使用特定的精灵创建了一些粒子动画,如果我在函数中使用它们,这些动画效果很好:

override init(size: CGSize)

我使用以下行:

let sheet_particles = Particles()
let particles_node = SKSpriteNode(texture: sheet_particles.particle000())
particles_node.name = kparticles
particles_node.position = CGPoint(x: 500, y: 500)
particles_node.zPosition = 5
background.addChild(particles_node)
particles_node.runAction(particlesAction)

使它们出现在我的场景中。

我遇到的问题是,如果我尝试在场景中的其他函数中使用它们,则看不到它们。

func panForTranslation(translation : CGPoint) {
    let position = selectedNode.position
    if selectedNode.name! == kpuzzleNodeName {
        selectedNode.position = CGPoint(x: position.x + translation.x * 2, y: position.y + translation.y * 2)

        switch selectedNode.name2 {
        case "0":
            if selectedNode.frame.intersects(NPuzzle13.frame) {
                particles_node.position = selectedNode.position
                particles_node.runAction(particlesAction)
                NPuzzle13.hidden = false
                selectedNode.removeFromParent()
        }

当条件"0"发生时,我没有看到粒子精灵,但我正确地看到了 NPuzzle13。当我检查particles_node节点的位置时,它的位置与节点 selectedNode 相等。一切都很好,除了粒子的可见性......我错过了什么?谢谢。

关于 zPosition 似乎都是正确的。我在您的代码中没有看到任何锚点。

我认为您的开关盒被跳转(未触发,未执行),因为您检查switch selectedNode.name2而不是switch selectedNode.name

最新更新