我试图创建一个背景流与游戏。然而,图像不是连续的。每个图像加载之间有一个空间。我想让图像继续循环。
下面是创建精灵 的方法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.position = ccp(screenW/8, 0);
更新精灵位置的方法。
- (void) setOffsetX:(float)offsetX {
if (_offsetX != offsetX) {
_offsetX = offsetX;
CGSize size = _sprite.textureRect.size;
_sprite.textureRect = CGRectMake(_offsetX, 0, size.width, size.height);
}
}
请帮忙
您的图像宽度需要是2的幂。也就是说,宽度必须是64 128 256 512等等如果你想让它重复
你看到的间隙是OpenGL填充了空白空间到你的纹理,使其成为2的力量。
在尝试了几次之后,最好的方法是确保精灵尺寸是2的次幂。这将确保你可以缩放图层,一切都保持良好。如果你不打算缩放图层,那么你可以使用任意大小的精灵,并使用如下命令:
[[CCDirector sharedDirector] setProjection:CCDirectorProjection2D];
http://ak.net84.net/iphone/gap-between-sprites-when-moving-in-cocos2d/