2009-12-05 6 views
0

J'ai besoin de faire un fond actif qui consiste en 2 CCSprites qui se déplacent successivement. Mais en même temps entre CCSprites apparaissent un peu d'intervalle. Comment le réparer?Cocos2D - problème avec le déplacement de CCSprites

Certains Code init:

sprite1 = [sprites objectAtIndex:0]; 
    [sprite2 setPosition:ccp(240.0,self.position.y)]; 
    sprite2 = [sprites objectAtIndex:1]; 
    [sprite2 setPosition:ccp(720.0,self.position.y)]; 
    [self addChild:sprite1 z:0]; 
    [self addChild:sprite2 z:1]; 
    [self schedule:@selector(update) interval:1/60.0]; 

Ce code, qui se déplacent sprites:

-(void)update{ 
if (sprite1.position.x<=-239.0) { 
    [sprite1 setPosition:ccp(720.0,self.position.y)]; 
    flag = false; 
}else{ 
    if (sprite2.position.x<=-239.0) { 
     [sprite2 setPosition:ccp(720.0,self.position.y)]; 
     flag = true; 
    } 
} 

if (sprite1.position.x<=720.0) { 
    if (flag) { 
     [sprite1 setPosition:ccp(sprite1.position.x-speed, self.position.y)]; 
     [sprite2 setPosition:ccp(sprite1.position.x+480, self.position.y)]; 

    }else { 
     [sprite2 setPosition:ccp(sprite2.position.x-speed, self.position.y)]; 
     [sprite1 setPosition:ccp(sprite2.position.x+480, self.position.y)]; 
    } 

} 

}

Intervalle: image

Répondre

2

Si l'écart est juste un pixel , il est probable que c'est juste comme ça que se comporte OpenGL/Cocos2D. Au lieu de faire vos images 480x320, faites-les 482x320, et faites les chevaucher avec ces pixels supplémentaires. Ensuite, l'écart sera parti.