我正在开发一款游戏,我可以更新玩家已经离开的高度。这是我的代码:
self.intScore++;
[self.lblScore setString:[NSString stringWithFormat:@"%d", self.intScore]];
但是当我用当前分数设置lblScore时,帧率从60fps下降到40fps + -
我正在使用iPhone 4进行测试。
如果我评论[self.lblScore ...那么帧率保持在60fps,但分数不会更新。
有什么建议吗?
答案 0 :(得分:0)
答案 1 :(得分:0)
好的,这就是我为解决这个问题所做的工作。
我有一个功能,每毫秒更新一次得分,是的,这太可怕了。所以我把分数更新改为少一点。
我将此添加到.h文件
@property (nonatomic,assign) int slowScore;
并将其添加到.m文件中的函数
if(slowScore < 5){
slowScore++;
}else if(slowScore == 5){
self.intScore = self.intScore + 5;
slowScore = 0;
}
[self.lblScore setString:[NSString stringWithFormat:@"%d", self.intScore]];
通过这样做,我能够保持相同的分数,但它会更新leed时间,通过这样做,我的帧率保持在60fps:)
+1 @jonmorgan建议更改CCLabelAtlas。
我使用CCLabelTTF和CCLabelAtlas测试了我的新代码,并且都将帧速率保持在60fps,但是在代码的其他部分运行了一些测试,CCLabelAtlas的性能要好得多。