2011-11-17 29 views
1

我的遊戲有白天晚上。是否有可能給節點(和他們的孩子)染色?如何着色節點?

不一定是整個現場(因爲我不想色調我的HUD的東西)。我設法用半透明,960x640(視網膜)彩色圖像覆蓋場景...但是,也許有一種更有效的方法來實現這種效果。

回答

6

只要實施CCRGBAProtocol,您就可以對受影響的節點 - 精靈,標籤等進行着色。

例如這三種顏色,可用於白天,黎明和夜晚:

// full brightness 
sprite.color = ccc3(255, 255, 255); 
// getting darker 
sprite.color = ccc3(200, 200, 220); 
// night 
sprite.color = ccc3(140, 140, 180); 

我拉起藍色通道,因爲藍色還是覺得挺黑,而不消耗過多的亮度。你會在很多遊戲中看到這種效果,夜晚的顏色對他們來說實際上是藍色的。在保持黑暗感的同時保留一些顏色和亮度是一種技巧。

這些數字不在我頭頂,當然需要調整。你也應該瞄準一個微妙的效果。遊戲中的「夜」並不意味着所有的圖形都是黑色的。

+0

我想我不能着色整個瓷磚地圖。當然,我可以遍歷它中的每一個瓦片並着色,但這聽起來並不高效。 – Voldemort

+0

是的,但你沒有提到瓷磚地圖。 ;)您可以更改每個拼貼的顏色,但會將每個拼貼轉換爲CCSprite,這意味着每個拼貼大約有420字節的內存使用量。對於所有拼貼變成CCSprite的200x200的地圖,會消耗16 MB的內存。 – LearnCocos2D

+0

如果我編輯瓷磚的顏色,瓷磚「被轉換爲CCSprite」?那麼在做這樣的事情之前,瓦片是什麼?爲什麼?還有什麼其他的東西可以把一個tile轉換成CCSprite?這樣的事情是否可逆? – Voldemort