为单位添加血条
新建了一个类,在构造函数内初始化ccsprite:
HealthBar::HealthBar(void) { _curHP=_totHP=100; _spriteFront = CCSprite::create("images/bar_hp_front.png"); _spriteBg = CCSprite::create("images/bar_hp_bg.PNG"); _spriteBg->retain(); //设置精灵的位置 //将锚点设为精灵的左下角 _spriteFront->setAnchorPoint(ccp(0.0,0.0)); //将子节点至于父节点的边界上,坐标根据图片手算的 _spriteFront->setPosition(ccp(3,4)); _spriteBg->addChild(_spriteFront); } HealthBar::~HealthBar(void) { //_spriteFrong为_spriteBG的孩子,也将一起release _spriteBg->release(); }
使用两张图片将血条呈现出来。
设置血条大小:
void HealthBar::setScale(float scale) { _spriteBg->setScale(scale); //_spriteFront因为是_spriteBg的子节点,所以不必对其进行setscale,否则效果会叠加 }
设置血条的比例:
void HealthBar::setPrecentage(float prec) { /* 设置血条的比例 */ CCSize size = _spriteFront->getContentSize(); //使用setTextureRect后,sprite会重新渲染,此时图片的位置跟sprite的锚点设置有关。 _spriteFront->setTextureRect(CCRectMake(0, 0, size.width*prec ,size.height)); }
HealthBar继承于CCobject类,于是自己重写了一个create函数,不知道这样写是不是对的:
HealthBar* HealthBar::create() { HealthBar* hb = new HealthBar(); hb->autorelease(); return hb; }
今天还优化了部分代码,一天就这样过去了,好忧伤...这进度!继续加班~

浙公网安备 33010602011771号