2014-11-30 2 views
0

РедактироватьSKSpriteNode не вынимая

Так в основном, каждое прикосновение, я называю эту функцию:

[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]; 

что в основном весь код, чтобы сделать с площадью не работает. Я не знаю, почему спрайт не удаляется.

Спасибо, что прочитали этот вопрос.

+0

Пожалуйста, покажите больше кода: объявления, когда вы добавляете его и т. Д. Здесь не достаточно. – jrturton

+0

Вы не назначаете спрайт, созданный для свойства '_sprite'. Попробуйте добавить 'self.sprite = sprite;' после инструкции '[self addChild: sprite];'. Теперь вы можете удалить его из своего родителя с помощью '[_sprite removeFromParent];'. – 0x141E

ответ

0

Потому что ты не показал нам код, попробовать:

_sprite = nil; 
[_sprite removeFromParent]; 

Edit:

Теперь при редактировании кода я вижу, что вы объявляете Ивар SKSpriteNode *sprite но вы удаляете имущество _sprite. Попробуйте [sprite removeFromParent];

+0

Он просто игнорирует его снова. Есть ли какой-нибудь код, который я мог бы использовать, который мог бы помочь? –

+0

Если вы поместите свой узел в сцену (например, '[self addChild: _sprite]'), и вы удалите его, не должно быть узла. Возможно, вы воссоздаете его в другом месте или удалите неправильный. Как насчет '[self.sprite removeFromParent]'. –

+0

Ahh Я вижу. Я скоро проверю и вернусь к вам. Я бы поставил вас, если мог, за все, что вы сделали :) –

Смежные вопросы