如何水平重复精灵?

时间:2012-08-05 13:49:40

标签: iphone objective-c ipad cocos2d-iphone textures

我有代码重复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];

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

2 个答案:

答案 0 :(得分:3)

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

我猜你可能正在使用1024x768纹理然后你会看到纹理重复之间的差距。

答案 1 :(得分:1)

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

看看我的TiledSprite类是否有一个相当未经优化但功能性的方法来任意重复任意大小的纹理或子纹理:

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

以下简要介绍其结果和用法:

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

相关问题