用一張資源影象完成技能cd的動畫實現,這裡用到了其他博主分享的乙個取灰色的**,在此謝過!
bygraysprite.h檔案
#include "cocoa/ccgeometry.h"
#include "cocos2d.h"
using_ns_cc;
class bygraysprite : public ccsprite;
#endif
bygraysprite.cpp檔案
#include "bygraysprite.h"
bygraysprite::bygraysprite()
bygraysprite::~bygraysprite()
bygraysprite* bygraysprite::create( const char* pszfilename )else
}bool bygraysprite::initwithtexture(cctexture2d* ptexture, const ccrect& trect )";
ccglprogram* pprogram = new ccglprogram();
pprogram->initwithvertexshaderbytearray(ccpositiontexturecolor_vert, pszfragsource);
this->setshaderprogram(pprogram);
pprogram->release();
check_gl_error_debug();
this->getshaderprogram()->addattribute(kccattributenameposition, kccvertexattrib_position);
this->getshaderprogram()->addattribute(kccattributenamecolor, kccvertexattrib_color);
this->getshaderprogram()->addattribute(kccattributenametexcoord, kccvertexattrib_texcoords);
check_gl_error_debug();
this->getshaderprogram()->link();
check_gl_error_debug();
this->getshaderprogram()->updateuniforms();
check_gl_error_debug();
return true;
} while (0);
return false;
}void bygraysprite::draw()
原始碼實現:
//灰白圖的生成
bygraysprite* graysprite = bygraysprite::create("icon-72.png");
graysprite->setposition(ccp(240, 160));
std::coutthis->addchild(graysprite,-1);
ccsprite* normalsprite = ccsprite::create("icon-72.png");
ccprogressto *action1 = ccprogressto::create(2, 100);
ccprogresstimer *cdact = ccprogresstimer::create(normalsprite);
cdact->settype(kccprogresstimertyperadial);
cdact->setposition(ccp(240,160));
cdact->runaction(ccrepeatforever::create(action1));
this->addchild(cdact);
好了,筆記就做到這,僅用一張資源圖就可以搞定的技能cd,mark一下,分享快樂~~
cocos2d x 遊戲技能CD實現
遊戲中技能cd用的最多的也就兩種。一種是類似dota裡面技能cd的灰色半透明透明遮罩層,順時針或者逆時針。另一種就是類似植物大戰殭屍裡面的植物建造cd。上下型別的遮罩層。其實cocos2d x可以很容易實現這種效果。dota裡面技能cd實現 ccprogresstimer pt ccprogress...
cocos2d x 遊戲優化方案
優化的方案 引擎底層優化 紋理優化 渲染優化 資源快取 記憶體優化.紋理優化 cocos2d x 底層是opengl es實現的。對於圖案片載入的記憶體是2的冪次方。使用的是100 128 會被轉為128 128。如此浪費一定的空間。色深優化 png a8r8g8b8 a1r5g5b5 argb44...
cocos2dx遊戲優化方向
優化方向 一 引擎底層優化 cocos2dx版本選擇 二 紋理優化 png格式,乙個畫素4位元組 1.二的冪次方拼圖 由於底層的opengl是按二的冪次方申請記憶體的,然後再吧這個存在記憶體中,如果 乙個480 480 4的要存入記憶體,那麼它的實際占用記憶體是512 512 4。所以為節約記憶體,...