2011-09-15 49 views
0

我正在开发一款游戏,显然有移动的物体......当我移动它们时,它们会滞后。我的同事有同样的问题 因此我动障碍:科科斯2D,为什么在移动物体时滞后?

-(void)moveThings:(ccTime)dt 
{ 
    CGSize size = [[CCDirector sharedDirector] winSize]; 
    for(CCSprite * sprite in visibleObstacle) 
    { 
     if(sprite.position.x<=size.width) 
     { 
      sprite.position=ccp(sprite.position.x-2, sprite.position.y); 
     } 
     else 
     { 
      [self removeChild:sprite cleanup:YES]; 
      [visibleObstacle removeObject:sprite]; 
     } 
    } 


} 

因此我谨面:

-(void)manageFlight 
{ 

    [plane runAction:[CCMoveTo actionWithDuration:0.05 position:ccp(plane.position.x, plane.position.y-2)]]; 
    //self.bgLayer.position=CGPointMake(self.bgLayer.position.x-1, self.bgLayer.position.y); 
    //self.bgTrees.position=CGPointMake(self.bgTrees.position.x-5, self.bgTrees.position.y); 

} 

还我动议的背景是瓷砖..以及当我移动的障碍,例如,他们碰巧滞后,即使精灵很小。有什么建议? iPhone上还有其他可靠的游戏框架吗?谢谢

+0

你的帧率下降到多少? 是你创造许多对象? –

+0

很久以前解决了这个问题) –

回答

1

它看起来像删除精灵导致你的滞后。您应该隐藏它或/并根据需要重新定位。 如下:

if(sprite.position.x<=size.width) 
    { 
     sprite.position=ccp(sprite.position.x-2, sprite.position.y); 
    } 
    else 
    { 
     [sprite setPosition:ccp(-sprite.contentSize.width, sprite.position.y]; 
    } 
+0

几个月前我问过这个问题,就是把所有的精灵都放在地图集中。但我不再在游戏开发中占有一段时间 –