我正在尝试创建一个与游戏一起流动的背景。然而图像不是连续的。每个图像加载之间有一个空格。我希望图像继续循环。
这是创建 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.position = ccp(screenW/8, 0);
更新 Sprite 位置的方法。
- (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 的幂的位置。
关于ios - Cocos2d 雪碧连续,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7376593/