You can call one function which will add that sprite back the screen with delay of five seconds.
You have to add some code as follows:
for (CCSprite *coin in coinArray)
{
// apply background scroll speed
float backgroundScrollSpeedX = [[GameMechanics sharedGameMechanics] backGroundScrollSpeedX];
float xSpeed = 1.09 * backgroundScrollSpeedX;
// move the coin until it leaves the left edge of the screen
if (coin.position.x > (coin.contentSize.width * (-1)))
{
coin.position = ccp(coin.position.x - (xSpeed*delta), coin.position.y);
}
else
{
[self performSelector:@selector(showSpriteAgain:) withObject:coin afterdelay:5.0f];
}
}
And make one function which will add that sprite to screen again:
-(void) showSpriteAgain:(CCSprite *)coin
{
coin.position = ccp(coin.position.x+screenSize.width,coin.position.y);
}
I think this is what you are looking for.