android CCLayColor重載draw遇到的問題解決方案
?? ????? 本來想著使用CCLayerColor,建立一個(gè)帶有顏色的Layer,作為背景,然后,筆者想在這個(gè)layer當(dāng)中畫出幾條線,但是這時(shí)候就遇到了問題了。因?yàn)槲乙坏┲剌ddraw函數(shù),我發(fā)想之前的CCLayColor已經(jīng)初始化為一種顏色就失效了。這時(shí)候我就很困惑了....不知道大家有沒有遇到過,這種問題....
??????? 最終我是沒有完美解決這個(gè)問題,最后我只能退而求其次。首先,我不再使用CCLayerColor作為基類了,然后我在draw函數(shù)當(dāng)中使用劃白色線的方式將整個(gè)屏幕化成了白色。
首先在GameScene.h文件中進(jìn)行draw函數(shù)的聲明
class?CGameScene:public?CClayer { ?virtual?void?draw(); }
然后重要的是,對于draw函數(shù)的定義,該函數(shù)在每幀重繪的時(shí)候進(jìn)行調(diào)用,不需要人工干預(yù)。該函數(shù)的定義如下:
void?CGameScene::draw()?{ CCSize?winSize?=?CCDirector::sharedDirector()->getWinSize(); //將整個(gè)屏幕畫成白色 ccDrawColor4B(255,0xff,0xff,0xff); glLineWidth(10); for(int?i=0;igetVisibleSize(); ccDrawLine(ccp(0,?s.height?*?0.79),?ccp(s.width?*?0.5,?s.height?*?0.79)); ccDrawLine(ccp(0,?s.height?*?0.71),?ccp(s.width?*?0.5,?s.height?*?0.71)); }
這樣,就利用draw函數(shù),我們就將背景色變?yōu)榱水?dāng)初設(shè)定的顏色。