在一个相当小的游戏中,我在大型预定更新方法中进行了更新(精灵,速度,背景等)。我想知道只有一个大的预定更新或几个只更新几个精灵之间的性能差异?
我还想知道:
之间是否存在性能差异 sprite.position = ccpAdd(sprite.postion, (delta*10, delta*5));
和
sprite.position = ccp(sprite.position.x + delta*10, sprite.position.y + delta*5);
通过ccp与CGPointMake分配职位之间是否存在业绩差异?
答案 0 :(得分:2)
无关紧要。
如果你真的,真的想知道,measure it。
那些是细枝末节。这就像在打蜡之后询问你的车是否更快。它可能,它可能不会。在99.99999%中,它无关紧要,因为差异可以忽略不计,而其他因素的影响更大(汽车:交通和道路状况/游戏:在屏幕上绘图)。
答案 1 :(得分:0)
ccpAdd
已解析为ccp
,然后将其解析为CGPointMake
,以便它们在您的已编译代码中完全相同。它们都是#define
所以它在预处理器中完成。
答案 2 :(得分:0)
确实,ccpAdd
& ccp
在编译的代码中是相同的。
至于你的性能问题,如果你有很多精灵需要更新,你可能想要产生一个后台线程来进行更新。 performSelectorInBackground:withObject:并且不要忘记在autorelease pool
中添加代码