2011-07-25 27 views
2

我對iphone編程相對比較陌生,而且我一直在用cocos2d開始。我想知道是否有辦法一次爲多個精靈設置不透明度?我注意到CCLayer沒有實現opacity,而且opacity似乎沒有傳播給CCSprite類的子類。在Cocos2d中更改多個精靈的不透明度

有沒有更好的方法來做到這一點,而不是重寫自定義ccnode上的setOpacity並逐個遍歷並設置不透明度?或者也許重寫繪圖並手動設置混合模式?

謝謝!

回答

3

可以遍歷場景中的所有的精靈,檢查它們是否你想要的精靈,然後設置不透明度像這樣(假設你的標籤,當你創建精靈設爲OPACITY_SPRITE_TAG)

for(CCSprite* sprite in [self children]) 
{ 
    if([sprite tag] == OPACITY_SPRITE_TAG) 
    { 
     [sprite setOpacity:NEW_OPACITY]; 
    } 
} 
+0

不...這是一個不好的解決方案。它分別改變多個精靈的不透明度。因此,如果他們相交,他們將通過彼此展示。這不是OP真正想要的。 – Coyote

0

難道你不能只通過你想改變的精靈數組來增加。喜歡的東西:

for(int i = 0; i < [myArray count]; i++){ 
CCSprite *mySprite = [myArray objectAtIndex:i]; 
[mySprite setOpacity:100]; 
} 
+0

是啊,這就是我會做一個解決辦法,但因爲我將要在一噸精靈經常改變不透明,我不知道是否會更有效採取場景圖的優點結構Cocos2d用來做不透明 – Xzhsh