我正在开发一个游戏,我会更新玩家已经离开的高度。这是我的代码:
self.intScore++;
[self.lblScore setString:[NSString stringWithFormat:@"%d", self.intScore]];
但是当我用当前分数设置 lblScore 时,帧率从 60fps 下降到 40fps +-
我正在使用 iPhone 4 进行测试。
如果我评论 [self.lblScore... 则帧率保持在 60fps,但分数不会更新。
有什么建议吗?
我正在开发一个游戏,我会更新玩家已经离开的高度。这是我的代码:
self.intScore++;
[self.lblScore setString:[NSString stringWithFormat:@"%d", self.intScore]];
但是当我用当前分数设置 lblScore 时,帧率从 60fps 下降到 40fps +-
我正在使用 iPhone 4 进行测试。
如果我评论 [self.lblScore... 则帧率保持在 60fps,但分数不会更新。
有什么建议吗?
好的,这就是我为解决此问题所做的工作。
我有一个功能可以每毫秒更新一次分数,是的,这太糟糕了。所以我改变了分数更新发生的少一点。
我将此添加到 .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 的性能要好得多。