Cocos2d Sprite Непрерывный - PullRequest
       32

Cocos2d Sprite Непрерывный

2 голосов
/ 11 сентября 2011

Я пытаюсь создать фон для игры. Однако изображение не является непрерывным. Между каждым из изображений загружается пробел. Я хочу, чтобы изображение продолжало цикл.

Вот метод создания спрайта

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 ]

3 голосов
/ 11 сентября 2011

Ширина вашего изображения должна быть степенью двойки.т. е. ширина должна быть 64, 128, 256, 512 и т. д., если вы хотите, чтобы она повторялась

Разрыв, который вы видите, - это то, что OpenGL добавил пустое пространство к вашей текстуре, чтобы сделать его степенью двойки.

1 голос
/ 28 декабря 2011

После нескольких попыток лучше всего убедиться, что размеры спрайтов равны 2. Это гарантирует, что вы можете масштабировать слой, и все останется в порядке. Если вы не планируете масштабировать слой, вы можете использовать спрайты любого размера и использовать это:

[[CCDirector sharedDirector] setProjection:CCDirectorProjection2D];

http://ak.net84.net/iphone/gap-between-sprites-when-moving-in-cocos2d/

...