gpt4 book ai didi

ios - 如何将粒子附加到移动的物体上

转载 作者:行者123 更新时间:2023-11-29 01:23:27 24 4
gpt4 key购买 nike

我创建了一个 PowerUpTrail.sks(粒子之物)我正在尝试将其附加到移动的物体上

func SpawnPowerUp(){

let PowerUp = SKSpriteNode(imageNamed: "PowerUp.png")
let MinValue = self.size.width / 8
let MaxValue = self.size.width - 20
let SpawnPoint = UInt32(MaxValue - MinValue)
PowerUp.position = CGPoint(x: CGFloat(arc4random_uniform(SpawnPoint)), y: self.size.height - 100)

//Physics
PowerUp.physicsBody = SKPhysicsBody(rectangleOfSize: PowerUp.size)
PowerUp.physicsBody?.categoryBitMask = PhysicsCategory.PowerUp //Sätter unikt ID för Enemy, hämtat från PhysicsCategory som vi gjorde där uppe
PowerUp.physicsBody?.contactTestBitMask = PhysicsCategory.PowerUp //Kolla om Enemy nuddar Bullet
PowerUp.physicsBody?.affectedByGravity = false
PowerUp.physicsBody?.dynamic = true

let action = SKAction.moveToY(-128, duration: 5)
let actionDone = SKAction.removeFromParent()
PowerUp.runAction(SKAction.sequence([action, actionDone]))
PowerUp.runAction(SKAction.rotateByAngle(5, duration: 5))


/* this does not work!
let PowerUpTrail = SKEmitterNode(fileNamed: "PowerUpTrail.sks")
PowerUpTrail!.targetNode = self
PowerUpTrail!.position = PowerUp.position
self.addChild(PowerUpTrail!)
*/

self.addChild(PowerUp)

}

粒子事物产生,但它不跟随该物体。我该如何解决这个问题?

最佳答案

使一个节点的位置跟踪另一个节点的最简单方法是使用节点层次结构:使粒子发射器成为通电 Sprite 的子节点。

let powerUp = SKSpriteNode(imageNamed: "PowerUp.png")
// ...
let powerUpTrail = SKEmitterNode(fileNamed: "PowerUpTrail.sks")!
powerUpTrail.targetNode = self
powerUp.addChild(powerUpTrail)

(另请注意一些 Swift 风格提示:initial-cap 通常仅用于类型名称;使用 initial-lowercase 用于变量名称。并在创建时从 SKEmitterNode(fileNamed:) 解包一次它而不是每次你之后使用它。)

关于ios - 如何将粒子附加到移动的物体上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34321000/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com