Cocos 2D,为什么在移动物体时会滞后?

时间:2011-09-15 09:04:20

标签: objective-c cocos2d-iphone

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

-(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上还有其他可靠的游戏框架吗?感谢

1 个答案:

答案 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]; 
    }