我一直在获得FPS滞后。我环顾四周,人们说使用
[self schedule:@selector(gameLoop:) interval: 1/60.0f];
当我使用它时,我得到了波动的延迟。但是当我使用
时[self schedule:@selector(gameLoop:)];
它更顺畅。这是我的移动代码的片段。
- (void)gameLoop :(ccTime)dt
{
[self manageCannon:dt];
[self manageBullets:dt];
[self manageEnemies:dt];
[self manageAllies:dt];
}
- (void) manageEnemies :(ccTime)dt
{
enemyClass *tempEnemy;
for(int i = 0; i < [enemies count]; i++)
{
tempEnemy = [enemyClass new];
tempEnemy = [enemies objectAtIndex:i];
tempEnemy.position = ccp(tempEnemy.position.x-tempEnemy.speed*dt,tempEnemy.position.y);
if((tempEnemy.position.x - tempEnemy.range) < [wall getwally])
{
tempEnemy.speed = 0;
}
if(tempEnemy.health < 1)
{
tempEnemy.alive = false;
}
if(tempEnemy.alive == false)
{
[enemies removeObjectAtIndex:i];
[tempEnemy removeFromParentAndCleanup:true];
}
}
}
我总是尝试从头开始编写自己的代码,所以如果你可以帮我解决其他我正在做的事情,这对我来说是非常有帮助的。
答案 0 :(得分:0)
很难说从您给出的信息中减慢您的应用程序的速度。正如LearnCocos2D建议的那样,您可以使用Instruments来找出缓慢的东西。或者,如果要进行非常精细的分析,可以始终在代码中使用以下宏:
#define TIC start = [NSDate date]
#define TOC -[start timeIntervalSinceNow]
#define TOCP NSLog(@"TIME: %f", TOC)
使用前,请务必在使用范围内声明NSDate *start
。然后在代码中添加一系列TIC / TOC或TIC / TOCP对,以打印出代码在不同位置所用的时间。你可以很快找到瓶颈。