Как повторить спрайт по горизонтали?


У меня есть код для повторения 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 5

2 ответа:

Для этого нет параметра. Просто убедитесь, что CGRect охватывает область, где вы хотите, чтобы текстура повторялась, и сама текстура должна быть в степени два (то есть 1024x1024).

Я предполагаю, что, возможно, вы используете текстуру 1024x768, и тогда вы увидите разрыв между текстурными повторами.

Это не может быть достигнуто на уровне GL, так как GL_REPEAT ожидает текстуры с силой двух измерений.

Взгляните на мой класс TiledSprite для довольно неоптимизированного, но функционального средства произвольного повторения текстуры или подтекстуры произвольного размера:

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

Вот краткий обзор его результатов и использования:

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