bool CSpriteObject::changeState(const string& s, CComponentParameter* parameter, bool force) { if (!CVisibleObject::changeState(s, parameter, force)) { return false; } if (s.empty()) { getInnerSprite()->stopAllActions(); } else { if (getCCBReader()) { CCBAnimationManager* am = getCCBReader()->getAnimationManager(); CCArray* seq = am->getSequences(); CCObject* pObj; CCARRAY_FOREACH(seq, pObj) { CCBSequence *seq = (CCBSequence*)pObj; if (s.compare(seq->getName()) == 0) { am->runAnimations(seq->getSequenceId(), 0); } } // getCCBReader()->getAnimationManager()->runAnimations(s.c_str()); } }
void TFHPBar::update(float dt) { CSpriteObject::update(dt); CCPoint pt(1, -3); // rewrite later!! pt = getInnerSprite()->convertToWorldSpace(pt); pt = m_pBar->convertToNodeSpace(pt); m_pBar->setSpritePosition(pt); }
bool CSpriteObject::setSprite(const char* name) { setInnerSprite(CCSprite::createWithSpriteFrameName(name)); if (NULL == getInnerSprite()) { return false; } setCCBReader(NULL); return true; }
void TFHPBar::updateBar() { if (NULL == getInnerSprite() || NULL == m_pBar) { return; } if (FLT_EQUAL(m_percentage, 0.f)) { m_pBar->setSpriteVisible(false); } else { m_pBar->setSpriteVisible(true); CCSize sz = m_pBar->getSpriteContentSize(); sz.width = OrigBarSize_.width * m_percentage; m_pBar->setSpritePreferredSize(sz); } }
bool TFSpriteObject::changeState(const string& s) { if (!TFVisibleObject::changeState(s)) { return false; } if (s.empty()) { getInnerSprite()->stopAllActions(); } else { if (getCCBReader()) { getCCBReader()->getAnimationManager()->runAnimations(s.c_str()); } } return true; }
bool CSpriteObject::setSpriteFromCcbi(const char* name) { // Create auto-release node loader CCNodeLoaderLibrary* ccNodeLoaderLibrary = CCNodeLoaderLibrary::newDefaultCCNodeLoaderLibrary(); // Create a CCBReader, auto release. CCBReader * ccbReader = new CCBReader(ccNodeLoaderLibrary); ccbReader->autorelease(); // Read a ccbi file, return a CCNode instance. setInnerSprite(dynamic_cast<CCSprite*>(ccbReader->readNodeGraphFromFile(name, this))); if (NULL == getInnerSprite()) { return false; } ccbReader->getAnimationManager()->setDelegate(this); setCCBReader(ccbReader); return true; }