Програмирам игра с помощта на Xcode и я тествам на iOS Simulator, използвайки Sprite Kit.
SKEmitterNode
, който използвам, изглежда причинява изтичане на памет; когато играта работи, всеки път, когато SKEmitterNode
се постави на екрана (при рисуване на „експлозия“), под „Показване на навигатора за отстраняване на грешки“ вляво, паметта се увеличава неограничено.
Някой има ли решение на този проблем?
Кодът по-долу е изцяло на MYScene.m
.
Моят SKEmitterNode се нарича _EmitterShatterApart
, което е експлозия, наречена „ShatterApart.sks“. _PositionObject
е SKSpriteNode, който е обектът, който се разрушава. _bgLayer
е фоновият слой.
@implementation MyScene
{
SKEmitterNode *_EmitterShatterApart;
...
}
-(void)MatchIncorrect
{
...
_EmitterShatterApart = [NSKeyedUnarchiver unarchiveObjectWithFile: [[NSBundle mainBundle] pathForResource:@"ShatterApart" ofType:@"sks"]];
_EmitterShatterApart.position = _PositionsObject.position;
if (!_EmitterShatterApart.parent) {
//[self.particleLayerNode addChild:_EmitterShatterApart];
[_bgLayer addChild:_EmitterShatterApart];
_EmitterShatterApart.userInteractionEnabled=FALSE;
[_EmitterShatterApart resetSimulation];
}
}