2010-11-21 140 views
1

我正在爲iOS開發遊戲。我正在使用cocos2d庫。我想要一個對象,它有3個部分 - 開始,結束和中間。我有這些組件的圖像。對象可以在創建時拉伸。但只有中間部分應該拉伸,開始和結束不應該縮放。因爲這個操作只有一次完成,我決定爲這個對象創建一個新的CCSprite是一個好主意,而不是保留三個(爲了提高性能)。我使用CCSPriteBatchNode進行渲染,並且我不知道是否真的需要組合對象的各個部分(也許使用批處理渲染3個部分的速度與渲染一個預先組合的對象一樣快)。將兩個紋理合併爲一個

因此有兩個quastions:

  1. 我是否需要在部件一個對象結合?

  2. 如果,是的 - 我該怎麼做?

回答

1

您可以創建一個節點並添加三個小精靈作爲子節點來代替紋理。然後,您可以將父節點作爲單個實體工作。

線沿線的東西:

CCNode *sprites = [CCNode node]; 

CCSprite *spriteA = [CCSprite spriteWithSpriteFrameName:@"spriteA.png"]; 
spriteA.position = ccp(-10, 0); 
[sprites addChild:spriteA]; 

CCSprite *spriteB = [CCSprite spriteWithSpriteFrameName:@"spriteB.png"]; 
spriteB.position = ccp(0, 0); 
[sprites addChild:spriteB]; 

CCSprite *spriteC = [CCSprite spriteWithSpriteFrameName:@"spriteC.png"]; 
spriteC.position = ccp(10, 0); 
[sprites addChild:spriteC]; 

您可以縮放和位置取決於你的參數,每個單獨的精靈再與sprites對象來定位/縮放它們作爲一個整體。

可能會有一個小的性能問題,所以在使用這個大量的精靈之前我會考慮三次,但我在一些情況下一直使用這種方法,在我的情況下我沒有注意到任何問題性能。

+0

謝謝,但我想這樣做只是爲了perfomance – Andrew 2010-11-26 08:31:17

1

看看RenderTexture演示。

除了使用畫筆之外,還可以使用這些圖像代替畫筆,將3個部分放在它上面。