您好我在ios7中创建了一款游戏。它的工作正常,帧长为60英寸 ios7.1。两天前我将我的Xcode从5.1更新为Xcode gm seed6现在当我再次使用iOS8编译游戏时出现了很多错误
,例如
1)帧率大幅度从60降至45
2精灵的zposition不能正常工作
3)CGpath内存泄漏
4)一次又一次编译游戏时很少崩溃
是xcode6 gm种子包含错误或我必须自己修复这些错误
是否有人面临同样的问题
答案 0 :(得分:1)
最后我发现了一些解决方案,为什么游戏在ios8中比较ios7时表现得很慢
1)[self enumerateChildNodesWithName:<#(NSString *)#> usingBlock:^(SKNode * node,BOOL * stop){ //你的代码 ios8中的套管问题它在ios8中表现得很慢,在与苹果guyes交谈之后他们告诉我,enumerateChildNodesWithName被改变是ios8,因为许多开发人员试图改变或修改节点而Enumeration可能导致他们的游戏崩溃所以现在由于空指针检查enumerateChildNodesWithName在ios8中很慢意味着如果enumerateChildNodesWithName找到任何空值,它将导致ac崩溃。
2)对于视差或物体的移动,你应该使用[[self children] enumerateObjectsUsingBlock:^(id obj,NSUInteger idx,BOOL * stop){ //你的代码 }] 这比enumerateChildNodesWithName少了4倍的时间(至少在我的情况下)
3)在处理物理时,我发现制作两个很多动态物体导致我的游戏变慢,所以更好的解决办法就是使用静态物理实体并在更新功能或skaction中移动或处理它们。4)预加载并将所有纹理保存为单例并将它们加载到更低的顺序消耗更少的内存,同时保存纹理,因为单个对象保持60帧速率
5)我在游戏中忘记了一件事,即每个skaction都没有使用name,所以最好给每个skaction命名一个名称,这个名称可以帮助我手动删除动作并在多个节点上应用相同的动作。