【问题标题】:SKSpriteNode not removingSKSpriteNode 未删除
【发布时间】:2014-11-30 11:51:36
【问题描述】:

编辑

所以基本上,每次触摸,我都会调用这个函数:

[self AddSprite];

现在代码运行这个方法,基本上在屏幕上创建一个精灵。 (我在未显示的代码中声明了 location 之类的东西)。

SKSpriteNode *sprite = [SKSpriteNode spriteNodeWithImageNamed:@"sprite.png"];
sprite.name = @"sprite";



sprite.xScale = Width;
sprite.yScale = Hight;



sprite.position = location;

[self addChild:sprite];

然后调用另一个方法,其中包含:

[_sprite removeFromParent];

这基本上是与该区域不起作用的所有代码。 我不知道为什么精灵没有被删除。

感谢您阅读此问题。

【问题讨论】:

  • 请显示更多代码:声明,添加时等等。这里没有足够的内容。
  • 您没有将创建的精灵分配给属性_sprite。尝试在[self addChild:sprite]; 语句之后添加self.sprite = sprite;。您现在应该可以使用 [_sprite removeFromParent]; 将其从其父级中删除。

标签: objective-c sprite-kit sprite


【解决方案1】:

因为你没有向我们展示代码,试试:

_sprite = nil;
[_sprite removeFromParent];

编辑:

现在,当您编辑代码时,我还看到您声明了 ivar SKSpriteNode *sprite,但您正在删除属性 _sprite。试试[sprite removeFromParent];

【讨论】:

  • 它只是再次忽略它。有没有我可以添加的代码可以提供帮助?
  • 如果你把你的节点放到一个场景中(比如[self addChild:_sprite])然后你移除它,应该没有节点。也许您在其他地方重新创建它或删除错误的。 [self.sprite removeFromParent]呢。
  • 啊,我明白了。我会检查并尽快回复您。如果可以为你所做的一切,我会支持你:)
  • 我添加了节点数,它说屏幕上只有 2 个节点(标签和精灵)
  • 有没有办法可以从屏幕上删除所有节点?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多