开发者

Cocos2d Sprite Continuous

I am trying to create a background to flow with the game. However the image isn't Continuous. There is a space between each of the image loads. I want the image to continue to loop.

Here is the method to create the sprite

CCSprite *sprite = [CCSprite spriteWithFile:@"Image.png" rect:CGRectMake(0, 0, 960, 640)];

ccTexParams tp = {GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT};

[sprite.texture setTexParameters:&tp];
sprite.anchorPoint = ccp(1.0f/8.0f, 0);
sprite.posi开发者_Go百科tion = ccp(screenW/8, 0);

Method to update the position of the sprite.

- (void) setOffsetX:(float)offsetX {
if (_offsetX != offsetX) {
_offsetX = offsetX;
CGSize size = _sprite.textureRect.size;
_sprite.textureRect = CGRectMake(_offsetX, 0, size.width, size.height);
}
}

Any help please


Your image width needs to be a power of two. i.e. the width has to be 64, 128, 256, 512, etc if you want it to repeat

The gap you are seeing is where OpenGL has padded empty space to your texture to make it power of two.


After trying it a few times, the best way is to ensure that the sprite dimensions are a power of 2. This will ensure that you can scale the layer and all remains fine. If you don't plan on scaling the layer, then you can use any size sprites and use this:

[[CCDirector sharedDirector] setProjection:CCDirectorProjection2D];

http://ak.net84.net/iphone/gap-between-sprites-when-moving-in-cocos2d/

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜