Я пытаюсь поставить след дыма за мой космический корабль. У меня есть smoketrail, разработанный как emitterNode, но я не могу прикрепить излучателя к космическому кораблю.swift как добавить SKEmitterNode как след дыма за SKSpriteNode?
Я не могу понять, почему это не работает. То есть излучатель вообще не отображается на экране:
var spaceShip: SKSpriteNode?
spaceShip = SKSpriteNode(imageNamed: "ship1.png")
spaceShip!.position = CGPoint(x: Int(arc4random_uniform(UInt32(self.size.width))), y: Int(arc4random_uniform(UInt32(self.size.height))))
let trailEmmiter = SKEmitterNode(fileNamed: "trailParticle.sks")
trailEmmiter!.name = "trailNode"
trailEmmiter!.position = CGPointMake(((plane?.size.width)!/2), ((plane?.size.height)!/2))
trailEmmiter!.zPosition = 100 //much over everything else
spaceShip!.addChild(trailEmmiter!)
self.addChild(spaceShip!)
но это работает. То есть он помещает мой след дыма в случайное положение на экране.
let trailEmmiter2 = SKEmitterNode(fileNamed: "trailParticle.sks")
trailEmmiter2!.name = "trailNode"
trailEmmiter2!.position = CGPoint(x: Int(arc4random_uniform(UInt32(self.size.width))), y: Int(arc4random_uniform(UInt32(self.size.height))))
trailEmmiter2!.zPosition = 100 //much over everything else
self!.addChild(trailEmmiter2!)
Как я могу поместить след дыма позади космического корабля?
печати trailEmitter.position после этой строки: 'trailEmmiter .position = CGPointMake (((плоскость .size.width)/2), ((плоскость .size.height)' и!?!?! Вставьте результат здесь. Также обратите внимание, что вы не должны использовать принудительное разворачивание, как это. Это небезопасно. Вместо этого лучше используйте необязательную привязку. – Whirlwind
@Whirlwind У меня есть три спрайта, поэтому 'print (" trailEmitter! .position: \ (trailEmitter !. position) ")' выполняется три раза со следующими результатами: trailEmitter! .position: (263.0, 213.0) trailEmitter! .position: (374.0, 155.0) trailEmitter! .position: (209.0, 74.0) – user594883
Обратите внимание, что когда вы добавляете дочерний узел к его родительскому элементу, он будет добавлен в систему координат родителей. вы хотите установить местоположение своих эмитентов относительно своего родителя ... Просто для проверки установите CGZeroPoint для позиции эмиттеров. Это поместит их в точное положение, где находится их родитель. – Whirlwind