LFToast::LFToast(string msg,float during) { CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize(); CCScale9Sprite* base = CCScale9Sprite::create("toast.png"); CCLabelTTF* lable = CCLabelTTF::create( msg.c_str(), fontStr_kaiti, 30, CCSize(base->getContentSize().width - 10,0), kCCTextAlignmentLeft); lable->setAnchorPoint(ccp(0,0.5f)); addChild(base); base->setContentSize(CCSizeMake(base->getContentSize().width,lable->getContentSize().height + 20)); base->setOpacity(0); base->addChild(lable); lable->setPosition(ccp(10,base->getContentSize().height/2)); base->setPosition(ccp(visibleSize.width/2,base->getContentSize().height + 20)); base->runAction(CCSequence::create( CCFadeTo::create(0.2f,255), CCDelayTime::create(during), CCFadeTo::create(0.1f,0), CCCallFuncN::create(this,SEL_CallFuncN(&LFToast::removeToast)), NULL )); }
void AchievementNotification::showImmediately(Achievement a) { mShowing = true; CCTexture2D* tex = CCTextureCache::sharedTextureCache()->textureForKey(fileName.c_str()); if (tex == NULL) { tex = CCTextureCache::sharedTextureCache()->addImage(fileName.c_str()); } CCSize winSize = CCDirector::sharedDirector()->getWinSize(); CCScale9Sprite* pBoard = CCScale9Sprite::create(CCRectMake(tex->getContentSize().width/2, 0, 2, tex->getContentSize().height), fileName.c_str()); addChild(pBoard,0,Tag_Board); pBoard->setPosition(ccp(winSize.width/2,winSize.height + pBoard->getContentSize().height) ); CCSprite* pJinBei = CCSprite::create(ResManager::getManager()->getFilePath(g_public+"CJ_icon_jiangbei.png").c_str()); pBoard->addChild(pJinBei, 1); pJinBei->setPosition(ccp(pJinBei->getContentSize().width, pBoard->getContentSize().height/2)); CCLabelTTF* pName = CCLabelTTF::create(a.name.c_str(), fontStr_KlavikaBold, 40); pName->setColor(fontColor_Acheivement_TTF); CCSprite* pIcon = CCSprite::create(ResManager::getManager()->getFilePath(g_public+"CJ_icon_wancheng.png").c_str()); int x = pName->getContentSize().width + pIcon->getContentSize().width - 420; if (x > 0) { pBoard->setContentSize(ccp(pBoard->getContentSize().width+x, pBoard->getContentSize().height)); } pBoard->addChild(pName); int xoffset = 10; pName->setPosition(ccp(pBoard->getContentSize().width/2 + pIcon->getContentSize().width/2 + xoffset, pBoard->getContentSize().height/2)); pBoard->addChild(pIcon); pIcon->setPosition(ccp(pName->getPositionX() - pName->getContentSize().width/2 - pIcon->getContentSize().width/2 - xoffset, pName->getPositionY())); Achievement* achievementCopy = new Achievement(a); // *achievementCopy = a; temp_Must_Delete.insert(temp_Must_Delete.end(),achievementCopy); pBoard->runAction(CCSequence::create( CCMoveTo::create(0.5f,ccp(pBoard->getPositionX(),winSize.height-pBoard->getContentSize().height/2)), CCDelayTime::create(0.1f), CCCallFuncND::create(this,SEL_CallFuncND(&AchievementNotification::boardShowing),achievementCopy), CCDelayTime::create(1.3f), CCMoveTo::create(0.2f,ccp(pBoard->getPositionX(),winSize.height+pBoard->getContentSize().height)), CCFadeTo::create(0.1f,0), CCCallFuncN::create(this,SEL_CallFuncN(&AchievementNotification::boardShowEnd)),NULL)); createPar(ccp(winSize.width/2,winSize.height),parFileName.c_str(),pBoard->getContentSize().width * 1.2f,pBoard->getContentSize().height); Music::sharedMusicPlayer()->playEffectSound("achievement.wav"); CCLog("AchievementNotification::showImmediately name = %s" ,a.name.c_str()); }
void CAIndicator::setIndicator(const CCSize& parentSize, const CCRect& childrenFrame) { CCScale9Sprite* indicator = dynamic_cast<CCScale9Sprite*>(m_pIndicator); int x = (int)indicator->getCenterOrigin().x * 10; int y = (int)indicator->getCenterOrigin().y * 10; if (m_eType == CAIndicatorTypeHorizontal) { float size_scale_x = parentSize.width / childrenFrame.size.width; size_scale_x = MIN(size_scale_x, 1.0f); float lenght_scale_x = parentSize.width / 2 - childrenFrame.origin.x; lenght_scale_x /= childrenFrame.size.width; CCSize size = m_obContentSize; size.width *= size_scale_x; if (lenght_scale_x < size_scale_x / 2) { size.width *= lenght_scale_x / (size_scale_x / 2); } if (1 - lenght_scale_x < size_scale_x / 2) { size.width *= (1 - lenght_scale_x) / (size_scale_x / 2); } size.width = MAX(size.height, size.width); indicator->setPreferredSize(size); CCPoint point = m_obContentSize; point.y *= 0.5f; point.x *= lenght_scale_x; point.x = MAX(point.x, size.width/2); point.x = MIN(point.x, m_obContentSize.width - size.width/2); indicator->setCenterOrigin(point); } else if (m_eType == CAIndicatorTypeVertical) { float size_scale_y = parentSize.height / childrenFrame.size.height; size_scale_y = MIN(size_scale_y, 1.0f); float lenght_scale_y = parentSize.height / 2 - childrenFrame.origin.y; lenght_scale_y /= childrenFrame.size.height; CCSize size = m_obContentSize; size.height *= size_scale_y; if (lenght_scale_y < size_scale_y / 2) { size.height *= lenght_scale_y / (size_scale_y / 2); } if (1 - lenght_scale_y < size_scale_y / 2) { size.height *= (1 - lenght_scale_y) / (size_scale_y / 2); } size.height = MAX(size.height, size.width); indicator->setPreferredSize(size); CCPoint point = m_obContentSize; point.x *= 0.5f; point.y *= lenght_scale_y; point.y = MAX(point.y, size.height/2); point.y = MIN(point.y, m_obContentSize.height - size.height/2); indicator->setCenterOrigin(point); } do { if (x == (int)indicator->getCenterOrigin().x * 10 && y == (int)indicator->getCenterOrigin().y * 10) { CC_BREAK_IF(indicator->getActionByTag(0xfff)); CC_BREAK_IF(indicator->getOpacity() < 255); CCDelayTime* delayTime = CCDelayTime::create(0.2f); CCFadeOut* fadeOut = CCFadeOut::create(0.3f); CCEaseSineOut* easeSineOut = CCEaseSineOut::create(fadeOut); CCSequence* actions = CCSequence::create(delayTime, easeSineOut, NULL); actions->setTag(0xfff); indicator->runAction(actions); } else { CC_BREAK_IF(indicator->getOpacity() == 255); indicator->stopAllActions(); indicator->setOpacity(255); } } while (0); }