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