Използване на шаблон SpriteKit, забавяне на жеста на плъзгане между сцените

Създавам приложение с помощта на Spritekit, използвам UISwipeGestureRecognizer за прекарване на пръст между сцени.

Сега моето приложение ще има много сцени, базирани на един и същ код, и жестът за плъзгане работи добре, освен че след като добавя трета или четвърта сцена, получавам много забавяне при плъзгане.

Не съм сигурен дали е защото използвам твърде много сцени или защото всяка сцена използва фоново изображение.

Плъзгането работи, но страда от значително забавяне.

Само аз ли получавам този проблем? Някой намирал ли е решение за този вид забавяне?

Всяка помощ ще бъде оценена.

Ето пример за кода, използван за 1 сцена.

Благодаря ти

#import "Ep1Slide1.h"
#import "Ep1Slide2.h"

-(id)initWithSize:(CGSize)size {
  if (self = [super initWithSize:size]) {

       self.backgroundColor = [SKColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:1.0];
       CGImageRef backgroundCGImage = [UIImage imageNamed:@"backgroundImage1"].CGImage;
       SKTexture *backgroundTexture = [SKTexture textureWithCGImage:backgroundCGImage];
       SKSpriteNode *someNode = [SKSpriteNode spriteNodeWithTexture:backgroundTexture];
       someNode.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame));
       [someNode setScale:0.5f];
       [self addChild:someNode];
       }
     return self;
   }

- (void)didMoveToView:(SKView *)view{

       UISwipeGestureRecognizer *leftSwipe = [[UISwipeGestureRecognizer alloc] initWithTarget:self action: @selector(leftFlip:)];
       [leftSwipe setDirection:UISwipeGestureRecognizerDirectionLeft];
       [self.view addGestureRecognizer:leftSwipe];
   }


- (void)leftFlip:(id)sender{
       SKView * skView = (SKView *)self.view;
       SKScene * scene = [Ep1Slide2 sceneWithSize:skView.bounds.size];
       scene.scaleMode = SKSceneScaleModeAspectFill;
       [skView presentScene:scene transition:[SKTransition pushWithDirection:SKTransitionDirectionLeft duration:1.2]];
   }

person PhilBlais    schedule 04.06.2014    source източник
comment
хм, има ли причина да не създадете спрайта директно от изображение? Пътят uiimage-›cgimage-›texture добавя много ненужни допълнителни разходи и това означава, че не използвате текстурен атлас, който бихте могли да заредите предварително, за да избегнете допълнителните разходи за зареждане на изображението при всяка промяна на сцената.   -  person LearnCocos2D    schedule 04.06.2014
comment
Бих обмислил предварително зареждане на текстурите, които използвате в новата сцена. Зареждането на текстурите ще забави представянето на новата сцена, така че най-добре го направете, преди да представите новата сцена! Предлагам ви да погледнете моя отговор на този въпрос ( което според мен е свързано, ако не със същия проблем).   -  person CloakedEddy    schedule 05.06.2014
comment
Опитах да заредя директно изображение, но по този начин получавам по-добро управление на паметта. Но независимо от това, забавянето/забавянето също се случва. Ще опитам предварително зареждане, звучи като много добра идея. текстурният атлас е ограничен до 2048 x 2048, което не помага много в моя случай.   -  person PhilBlais    schedule 05.06.2014