gpt4 book ai didi

swift - 如何从父级 SKSpriteNode 中删除子级 SKSpriteNode 而不杀死子级

转载 作者:行者123 更新时间:2023-11-30 13:18:39 27 4
gpt4 key购买 nike

我有一条拿着蛋的龙。 EggNode 是 DragonNode 的子节点。

龙水平飞过屏幕。

当龙到达屏幕最右侧时,龙会重置到屏幕最左侧。

我已经实现了龙将鸡蛋扔到地面炮塔的位置。龙使用这个函数在touchesEnded中丢下了蛋。

func shootProjectile(){

//aim
let dx = turretNode.position.x - dragonNode.position.x
let dy = turretNode.position.y - dragonNode.position.y
let angle = atan2(dy, dx)

dragonProjectileNode.zRotation = angle

//Seek
let vx = turrentNode.position.x
let vy = turrentNode.position.y

let shootAction = SKAction.moveTo(CGPointMake(vx, vy),duration: 2.25)
dragonProjectileNode.runAction(shootAction)
}

但是,由于蛋仍然是龙的 child ,因此蛋将与龙一起重置到屏幕的左侧,即使在掉落之后也是如此。

我该如何解决这个问题?有没有办法在不杀死鸡蛋的情况下将 child 从 parent 身边带走?

最佳答案

如果不将子级完全从场景中移除,则无法将子级从父级中移除。我通过简单地解决了我的问题:

  1. 从我的代码中删除父/子关系。
  2. 将 createEggNode 函数放入我的 shotProjectile 函数中。 (仍然在touchesEnded上调用函数)
  3. 将eggNode位置放在龙的位置。

关于swift - 如何从父级 SKSpriteNode 中删除子级 SKSpriteNode 而不杀死子级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37980597/

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