2012-08-05 13 views
5

Ich habe den Code zu wiederholen X- und Y bekommt das ist:Wie wiederhole ich Sprite horizontal?

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]; 

Aber ich weiß nicht, wie die params, um für den Hintergrund entlang der horizontalen Achse zu wiederholen, zu ändern.

Antwort

3

Es gibt keinen Parameter dafür. Stellen Sie nur sicher, dass das CGRect die Region umfasst, in der die Textur wiederholt werden soll, und dass die Textur selbst eine Zweierpotenz (dh 1024x1024) sein muss.

Ich vermute, dass vielleicht sind Sie eine 1024x768 Textur verwenden und dann werden Sie eine Lücke zwischen Textur wiederholt zu sehen.

+0

oh yeah richtig danke. Ich wusste über die Größe des Bildes (Power von 2), aber meine Rect war nicht die richtige Größe. Perfekt. Vielen Dank. –

1

Dies kann nicht auf der GL-Ebene erreicht werden, da GL_REPEAT Texturen mit Potenz von zwei Dimensionen erwartet.

Werfen Sie einen Blick auf meine TiledSprite Klasse für ein eher nicht optimierten, aber funktional mittels willkürlich eine beliebig große Textur oder Unter-Textur zu wiederholen:

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

Hier ist ein kurzer Blick auf die Ergebnisse und Nutzung:

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

Verwandte Themen