精灵套件和寻路,iPad和iPhone的区别?
我想知道iPad和iPhone之间是否有显著的区别? 我正在用Sprite工具包、SKD 8.1和target iOS 7.1开发一款游戏 在测试期间,游戏使用*寻路来移动我地图上的2个角色。 我遇到的问题是当角色寻找路径时 在我的iPad4上,16gb的寻路功能在角色寻找路径时冻结。 在我的iphone6和iphone4上,它工作得完美无缺 它在模拟器iPadRetina、iPhone4和iPhone6上运行良好,游戏中没有冻结,只有在我的iPad4上 我错过了什么吗?这款游戏是为iPhone和iPad开发的。 非常感谢你的帮助精灵套件和寻路,iPad和iPhone的区别?,iphone,xcode,ipad,freeze,path-finding,Iphone,Xcode,Ipad,Freeze,Path Finding,我想知道iPad和iPhone之间是否有显著的区别? 我正在用Sprite工具包、SKD 8.1和target iOS 7.1开发一款游戏 在测试期间,游戏使用*寻路来移动我地图上的2个角色。 我遇到的问题是当角色寻找路径时 在我的iPad4上,16gb的寻路功能在角色寻找路径时冻结。 在我的iphone6和iphone4上,它工作得完美无缺 它在模拟器iPadRetina、iPhone4和iPhone6上运行良好,游戏中没有冻结,只有在我的iPad4上 我错过了什么吗?这款游戏是为iPhone
-(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];
}
我现在运行了时间分析器,当角色寻找路径时,它会出现峰值。对childNodeWithName的搜索为黄色,占24%。。。每次路径找到下一个块时都会调用nearbyBlocks,因此会根据路径长度多次调用它
问题是,我需要使用SKNodes,因为如果有人正在移除下面的块,字符可能会掉下来。。。可能很快就会放弃游戏理念 使用仪器进行配置,以查看时间花在何处。这里没有任何信息可以让任何人诊断您的问题。我是xcode的新手:谢谢您的提示,我会在下班后做这件事,并发布更多信息: