2014-10-28 2 views
0

Интересно, есть ли какая-то настройка och существенное различие между iPad и iPhone? Я разрабатываю игру с комплектом Sprite Kit, SKD 8.1 и целевым iOS 7.1.Sprite Kit и Pathfinding, различия между iPad и iPhone?

Игра использует A * pathfinding для перемещения двух символов на моей карте во время тестирования. Проблема, с которой я столкнулся, - это когда персонажи ищут путь.

На моем iPad 4, 16gb, путь слежения замирает, пока персонажи ищут путь. На моем iPhone 6 и iPhone 4 он работает безупречно.

Он отлично работает на тренажере (IPad Retina, iPhone 4 и iPhone 6) и не заморозить в игре, только на моем Ipad 4 ...

Есть ли что-то я пропустил? Игра разработана для использования как на iPhone, так и на iPad. Очень благодарен за любую помощь ..

+0

Профиля с инструментами, чтобы увидеть, где время расходуется. Здесь нет информации о том, что любой может диагностировать вашу проблему. – rickster

+0

Я новичок с xcode :) Спасибо за отзыв, я сделаю это после работы и опубликую дополнительную информацию :) –

ответ

0
-(NSArray*)nearbyBlocks:(SKNode*)blocks { 

    NSMutableArray *tmp = [NSMutableArray arrayWithCapacity:4]; 
    NSArray *leftB = [blocks.name componentsSeparatedByString:@"_"]; 

    /* LEFT */ 
    SKNode *b = [background childNodeWithName:[NSString stringWithFormat:@"block_%i_%i", [[leftB objectAtIndex:1] intValue]-1, [[leftB objectAtIndex:2] intValue]]]; 
    if ([blockArrayWalk containsObject:b]) { 
     [tmp addObject:b]; 
    } 

    /* RIGHT */ 
    b = [background childNodeWithName:[NSString stringWithFormat:@"block_%i_%i", [[leftB objectAtIndex:1] intValue]+1, [[leftB objectAtIndex:2] intValue]]]; 
    if ([blockArrayWalk containsObject:b]) { 
     [tmp addObject:b]; 
    } 

    /* UP */ 
    b = [background childNodeWithName:[NSString stringWithFormat:@"block_%i_%i", [[leftB objectAtIndex:1] intValue], [[leftB objectAtIndex:2] intValue]+1]]; 
    if ([blockArrayWalk containsObject:b]) { 
     [tmp addObject:b]; 
    } 

    /* DOWN */ 
    b = [background childNodeWithName:[NSString stringWithFormat:@"block_%i_%i", [[leftB objectAtIndex:1] intValue], [[leftB objectAtIndex:2] intValue]-1]]; 
    if ([blockArrayWalk containsObject:b]) { 
     [tmp addObject:b]; 
    } 

    return [NSArray arrayWithArray:tmp]; 
} 

Я запускать Time Profiler сейчас, и шипы, когда персонаж ищет путь. Поиск childNodeWithName имеет желтый цвет с 24% ... nearbyBlocks вызывается каждый раз, когда путь нашел следующий блок, поэтому его вызывали несколько раз в зависимости от длины пути.

Проблема заключается в том, что мне нужно использовать SKNodes, поскольку символ может упасть, если кто-то удаление блока под ... Могли бы отказаться от идеи игры в ближайшее время;)

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