5

我有重复 X- 和 Y- 的代码,即:

 bg = [CCSprite spriteWithFile:@"ipadbgpattern.png" rect:CGRectMake(0, 0, 3000, 3000)];
        bg.position = ccp(500,500);
        ccTexParams params = {GL_LINEAR,GL_LINEAR,GL_REPEAT,GL_REPEAT};
        [bg.texture setTexParameters:&params];
        [self addChild:bg];

但是,我不知道如何更改参数以使背景沿水平轴重复。

4

2 回答 2

3

没有参数。只需确保 CGRect 跨越您希望纹理重复的区域,并且纹理本身必须是 2 的幂(即 1024x1024)。

我猜也许您使用的是 1024x768 纹理,然后您会看到纹理重复之间的间隙。

于 2012-08-05T23:22:28.163 回答
1

这在 GL 级别无法实现,因为 GL_REPEAT 需要具有二维幂的纹理。

看看我的 TiledSprite 类,了解一个相当未优化但功能性的任意重复任意大小的纹理或子纹理的方法:

https://gist.github.com/Nolithius/6694990

下面简要介绍一下它的结果和用法:

http://www.nolithius.com/game-development/cocos2d-iphone-repeating-sprite

于 2013-09-25T06:03:51.303 回答