sprite* helloworld::maskedspritewithsprite(sprite* texturesprite, sprite* masksprite)
);//這句話可以去掉
texturesprite->setblendfunc( blendfunc );
// 4
rt->begin();
masksprite->visit();
texturesprite->visit();
rt->end();
// 5
sprite *retval = sprite::createwithtexture(rt->getsprite()->gettexture());
retval->setflippedy(true);
return retval;
}
原理:* 把src color(日曆)設定為gl_dst_alpha。意思是,看看mask的當前alpha值是多少,如果是0(完全透明),那麼就顯示mask的。如果是1(完全不透明),那麼就顯示日曆。
* 然後把dst color(the mask)設計成gl_zero,這樣的話,之前渲染上去的mask就消失了。
缺點:* 每一次你應用一次mask的時候,都會在記憶體裡面建立一張額外的紋理。 在iphone上面紋理所能占用的記憶體數量是非常有限的,所以你要非常小心,盡可能減少記憶體中載入的紋理數量。當你一次只給一張加mask效果的時候,這種方法很好,但是100張需要mask呢?
* 渲染非常耗時.使用rendertexture來渲染代價非常高,尤其是當紋理大小變大以後。如果你經常使用這種方式去繪圖,那麼會嚴重影響效能。
cocos2d x建立精靈
建立精靈 方法一 有一張檔案建立 l ocal spritename cc.sprite create test.dog cc.sprite會自動將檔案載入為紋理,並用於初始化精靈 精靈還可以僅顯示的一部分 l ocal spritename cc.sprite create test.png cc...
cocos2dx3 螢幕適配問題的解決方案
剛開始碰到這個問題,有點慌,因為我們遊戲一開始沒有做這個方面的考慮,改動量比較大。查了網上資料,選擇了一種比較合理的解決方案 cocos2dx給了5種方案 1,exact fit 使用這個選項,可以保證設計區域完全鋪滿螢幕,但是可能會出現介面被拉伸。2,show all 按原始比例進行縮放,不變形,...
cocos2d x中的精靈
所有的遊戲都有 sprites 精靈,你可能知道或者不知道它們是什麼。精靈就是遊戲中在場景裡進行移動的物件。你可以操縱它們。精靈可能是遊戲中最主要的角色。我知道你在想什麼 難道每乙個圖形物件都是精靈sprite嗎?當然不是!為什麼?當你操縱乙個精靈的時候,它就是乙個精靈。如果你不對它進行操作,那它就...