//------------------------------------------------------------------ // // SpriteProgressToRadialMidpointChanged // //------------------------------------------------------------------ void SpriteProgressToRadialMidpointChanged::onEnter() { SpriteDemo::onEnter(); CCSize s = CCDirector::sharedDirector()->getWinSize(); CCProgressTo *action = CCProgressTo::create(2, 100); /** * Our image on the left should be a radial progress indicator, clockwise */ CCProgressTimer *left = CCProgressTimer::create(CCSprite::create(s_pPathBlock)); left->setType(kCCProgressTimerTypeRadial); addChild(left); left->setMidpoint(ccp(0.25f, 0.75f)); left->setPosition(ccp(100, s.height/2)); left->runAction(CCRepeatForever::create((CCActionInterval *)action->copy()->autorelease())); /** * Our image on the left should be a radial progress indicator, counter clockwise */ CCProgressTimer *right = CCProgressTimer::create(CCSprite::create(s_pPathBlock)); right->setType(kCCProgressTimerTypeRadial); right->setMidpoint(ccp(0.75f, 0.25f)); /** * Note the reverse property (default=NO) is only added to the right image. That's how * we get a counter clockwise progress. */ addChild(right); right->setPosition(ccp(s.width-100, s.height/2)); right->runAction(CCRepeatForever::create((CCActionInterval *)action->copy()->autorelease())); }
//------------------------------------------------------------------ // // SpriteProgressToVertical // //------------------------------------------------------------------ void SpriteProgressToVertical::onEnter() { SpriteDemo::onEnter(); CCSize s = CCDirector::sharedDirector()->getWinSize(); CCProgressTo *to1 = CCProgressTo::create(2, 100); CCProgressTo *to2 = CCProgressTo::create(2, 100); CCProgressTimer *left = CCProgressTimer::create(CCSprite::create(s_pPathSister1)); left->setType(kCCProgressTimerTypeBar); // Setup for a bar starting from the bottom since the midpoint is 0 for the y left->setMidpoint(ccp(0,0)); // Setup for a vertical bar since the bar change rate is 0 for x meaning no horizontal change left->setBarChangeRate(ccp(0, 1)); addChild(left); left->setPosition(CCPointMake(100, s.height/2)); left->runAction( CCRepeatForever::create(to1)); CCProgressTimer *right = CCProgressTimer::create(CCSprite::create(s_pPathSister2)); right->setType(kCCProgressTimerTypeBar); // Setup for a bar starting from the bottom since the midpoint is 0 for the y right->setMidpoint(ccp(0, 1)); // Setup for a vertical bar since the bar change rate is 0 for x meaning no horizontal change right->setBarChangeRate(ccp(0, 1)); addChild(right); right->setPosition(CCPointMake(s.width-100, s.height/2)); right->runAction( CCRepeatForever::create(to2)); }
void SpriteProgressToHorizontal::onEnter() { SpriteDemo::onEnter(); CCSize s = CCDirector::sharedDirector()->getWinSize(); CCProgressTo *to1 = CCProgressTo::create(2, 100); CCProgressTo *to2 = CCProgressTo::create(2, 100); CCProgressTimer *left = CCProgressTimer::progressWithFile(s_pPathSister1); left->setType(kCCProgressTimerTypeHorizontalBarLR); // Setup for a bar starting from the left since the midpoint is 0 for the x left->setMidpoint(ccp(0,0)); // Setup for a horizontal bar since the bar change rate is 0 for y meaning no vertical change left->setBarChangeRate(ccp(1, 0)); addChild(left); left->setPosition(ccp(100, s.height/2)); left->runAction( CCRepeatForever::create(to1)); CCProgressTimer *right = CCProgressTimer::progressWithFile(s_pPathSister2); right->setType(kCCProgressTimerTypeHorizontalBarRL); // Setup for a bar starting from the left since the midpoint is 1 for the x right->setMidpoint(ccp(1, 0)); // Setup for a horizontal bar since the bar change rate is 0 for y meaning no vertical change right->setBarChangeRate(ccp(1, 0)); addChild(right); right->setPosition(ccp(s.width-100, s.height/2)); right->runAction( CCRepeatForever::create(to2)); }
//------------------------------------------------------------------ // // SpriteProgressBarTintAndFade // //------------------------------------------------------------------ void SpriteProgressBarTintAndFade::onEnter() { SpriteDemo::onEnter(); CCSize s = CCDirector::sharedDirector()->getWinSize(); CCProgressTo *to = CCProgressTo::create(6, 100); CCAction *tint = CCSequence::create(CCTintTo::create(1, 255, 0, 0), CCTintTo::create(1, 0, 255, 0), CCTintTo::create(1, 0, 0, 255), NULL); CCAction *fade = CCSequence::create(CCFadeTo::create(1.0f, 0), CCFadeTo::create(1.0f, 255), NULL); CCProgressTimer *left = CCProgressTimer::create(CCSprite::create(s_pPathSister1)); left->setType(kCCProgressTimerTypeBar); // Setup for a bar starting from the bottom since the midpoint is 0 for the y left->setMidpoint(ccp(0.5f, 0.5f)); // Setup for a vertical bar since the bar change rate is 0 for x meaning no horizontal change left->setBarChangeRate(ccp(1, 0)); addChild(left); left->setPosition(ccp(100, s.height/2)); left->runAction(CCRepeatForever::create((CCActionInterval *)to->copy()->autorelease())); left->runAction(CCRepeatForever::create((CCActionInterval *)tint->copy()->autorelease())); left->addChild(CCLabelTTF::create("Tint", "Marker Felt", 20.0f)); CCProgressTimer *middle = CCProgressTimer::create(CCSprite::create(s_pPathSister2)); middle->setType(kCCProgressTimerTypeBar); // Setup for a bar starting from the bottom since the midpoint is 0 for the y middle->setMidpoint(ccp(0.5f, 0.5f)); // Setup for a vertical bar since the bar change rate is 0 for x meaning no horizontal change middle->setBarChangeRate(ccp(1, 1)); addChild(middle); middle->setPosition(ccp(s.width/2, s.height/2)); middle->runAction(CCRepeatForever::create((CCActionInterval *)to->copy()->autorelease())); middle->runAction(CCRepeatForever::create((CCActionInterval *)fade->copy()->autorelease())); middle->addChild(CCLabelTTF::create("Fade", "Marker Felt", 20.0f)); CCProgressTimer *right = CCProgressTimer::create(CCSprite::create(s_pPathSister2)); right->setType(kCCProgressTimerTypeBar); // Setup for a bar starting from the bottom since the midpoint is 0 for the y right->setMidpoint(ccp(0.5f, 0.5f)); // Setup for a vertical bar since the bar change rate is 0 for x meaning no horizontal change right->setBarChangeRate(ccp(0, 1)); addChild(right); right->setPosition(ccp(s.width-100, s.height/2)); right->runAction(CCRepeatForever::create((CCActionInterval *)to->copy()->autorelease())); right->runAction(CCRepeatForever::create((CCActionInterval *)tint->copy()->autorelease())); right->runAction(CCRepeatForever::create((CCActionInterval *)fade->copy()->autorelease())); right->addChild(CCLabelTTF::create("Tint and Fade", "Marker Felt", 20.0f)); }
void ASGame::energyBarAnimation(){ //1.显示行动力的圆形底座 CCSprite* energyBall = CCSprite::createWithSpriteFrameName("newEnergyContainer.png"); energyBall->setPosition(ccp(size.width*17.38/80,size.height*77.85/90+winDif*2*alpha*alpha)); addChild(energyBall,4); //2.行动力数量 string perStr = int2string(moveCount); CCLabelTTF* per = CCLabelTTF::create(perStr.c_str(),"Arial Rounded MT bold",32); per->setPosition(ccp(size.width*17.38/80,size.height*77.85/90+winDif*2*alpha*alpha)); addChild(per,5,1*10000000+26); //3.能量条 CCSprite* energyBarSprite = CCSprite::createWithSpriteFrameName("newEnergyBar.png"); CCProgressTimer* energyBar = CCProgressTimer::create(energyBarSprite); energyBar->setPosition(ccp(size.width*8.45/80,size.height*79.89/90+winDif*2*alpha*alpha)); energyBar->setType(kCCProgressTimerTypeRadial); energyBar->setPercentage(moveCount*20); addChild(energyBar,4,1*10000000+20); //4.攻击按钮底座 CCSprite* containerSprite = CCSprite::createWithSpriteFrameName("energyContainer.png"); CCSprite* containerSprite_s = CCSprite::createWithSpriteFrameName("energyContainer.png"); CCMenuItemSprite* energyContainer = CCMenuItemSprite::create(containerSprite,containerSprite_s,this,menu_selector(ASGame::enterFightLayer)); energyContainer->setScale(1.05); energyContainer->setPosition(ccp(size.width*179.5/200,size.height*10.25/135)); CCMenu* energyContainerMenu = CCMenu::create(energyContainer,NULL); energyContainerMenu->setPosition(CCPointZero); if (moveCount < moveToFight) energyContainerMenu->setTouchEnabled(false); addChild(energyContainerMenu,2,1*10000000+27); //5.攻击按钮充值槽 CCSprite* barSprite = CCSprite::createWithSpriteFrameName("energyBar.png"); CCProgressTimer* attackButton = CCProgressTimer::create(barSprite); attackButton->setScale(1.05); attackButton->setPosition(ccp(size.width*179.04/200,size.height*10/135)); attackButton->setType(kCCProgressTimerTypeBar); attackButton->setMidpoint(ccp(0.5, 0)); attackButton->setBarChangeRate(ccp(0, 1)); attackButton->setPercentage(100*moveCount/moveToFight); addChild(attackButton,3,1*10000000+25); //4.能量的盖子 CCSprite* energyBarCover = CCSprite::createWithSpriteFrameName("energyBarCover.png"); energyBarCover->setPosition(ccp(size.width*179.5/200,size.height*10.25/135)); energyBarCover->setOpacity(0); //addChild(energyBarCover,4,1*10000000+28); }
bool LoadingLayer::setUpdateView() { bool isRet = false; do{ CCSprite* loadingbackimg = CCSprite::create("gmbg/loadingbg.png"); CC_BREAK_IF(!loadingbackimg); loadingbackimg->setPosition(ccp(getWinSize().width/2 + getWinOrigin().x, getWinSize().height/5 + getWinOrigin().y)); this->addChild(loadingbackimg, 1); CCSprite* loadimg = CCSprite::create("gmbg/loading.png"); CC_BREAK_IF(!loadimg); CCProgressTimer* pt = CCProgressTimer::create(loadimg); pt->setType(cocos2d::CCProgressTimerType(kCCProgressTimerTypeBar)); pt->setMidpoint(ccp(0,0.5)); pt->setBarChangeRate(ccp(1,0)); float tex = getWinSize().width/2 + getWinOrigin().x; float tey = getWinSize().height/5 + getWinOrigin().y-5; pt->setPosition(ccp(tex, tey)); pt->setPercentage(0); this->addChild(pt, 2, 1); CCProgressTo* to = CCProgressTo::create(5, 100); pt->runAction(CCRepeatForever::create(to)); isRet = true; }while(0); return isRet; }
bool wootestScene::setUpdateView() { bool isRet=false; CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize(); CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin(); do { // 进度条背景 CCSprite* loadbackimg=CCSprite::create("lodingbg.png"); CC_BREAK_IF(!loadbackimg); loadbackimg->setPosition(ccp(visibleSize.width/2+origin.x,visibleSize.height/5+origin.y)); this->addChild(loadbackimg,2); // 进度条 CCSprite* loadimg=CCSprite::create("longding.png"); CC_BREAK_IF(!loadimg); CCProgressTimer* pt = CCProgressTimer::create(loadimg); pt->setType(kCCProgressTimerTypeBar);// 设置成横向 pt->setMidpoint(ccp(0,0)); // 设置进度条从左到右 pt->setBarChangeRate(ccp(1,0)); //重新设置锚点 float tex=visibleSize.width/2+origin.x; float tey=visibleSize.height/5+origin.y-5; pt->setPosition(ccp(tex,tey)); pt->setPercentage(0); this->addChild(pt,2,1); isRet=true; } while (0); return isRet; }
bool LoadingLayer::setUpdateView(){ bool isRet=false; do { // 设置进度条的背景图片 我们把他放到屏幕下方的1/5处 CCSprite* loadbackimg=CCSprite::create("gmbg/lodingbg.png"); CC_BREAK_IF(!loadbackimg); loadbackimg->setPosition(ccp(getWinSize().width/2+getWinOrigin().x,getWinSize().height/5+getWinOrigin().y)); this->addChild(loadbackimg,1); // 添加进度条 CCSprite* loadimg=CCSprite::create("gmbg/longding.png"); CC_BREAK_IF(!loadimg); CCProgressTimer* pt = CCProgressTimer::create(loadimg); pt->setType(kCCProgressTimerTypeBar);// 设置成横向的 //可以看作是按矩形显示效果的进度条类型 pt->setMidpoint(ccp(0,0)); // 用来设定进度条横向前进的方向从左向右或是从右向左 pt->setBarChangeRate(ccp(1,0)); //重新设置锚点 float tex=getWinSize().width/2+getWinOrigin().x; float tey=getWinSize().height/5+getWinOrigin().y-5; pt->setPosition(ccp(tex,tey)); pt->setPercentage(0); this->addChild(pt,2,1); isRet=true; } while (0); return isRet; }
bool HSShowEndurance::init() { for (int i=0; i<HSShowEndurance::S_C_ENDURANCE_COUNT; ++i) { CCString* pPanel = CCString::createWithFormat("UI_Benfangxinxiban_Naili_%d",i); HSCCSprite* pSprite = HS_FIND_UI_PANEL_SPRITE(pPanel->getCString(),"Naili_1"); pSprite->setVisible(false); CCProgressTimer* pProgress = CCProgressTimer::create(pSprite); pProgress->setType(kCCProgressTimerTypeBar); pProgress->setPosition(pSprite->getPosition()); pProgress->setMidpoint(ccp(0.5,0)); pProgress->setBarChangeRate(ccp(0,1)); i < HSShowEndurance::S_CURRENT_ENDURANCE_COUNT ? pProgress->setPercentage(100) : pProgress->setPercentage(0); pSprite->getParent()->addChild(pProgress,2000); m_enduranceMap.insert(pair<int, CCProgressTimer*>(i + 1,pProgress)); CC_SAFE_RELEASE_NULL(pPanel); } HSCCSprite* pSprite = HS_FIND_UI_PANEL_SPRITE("UI_Benfangxinxiban_Nailijishiqi","Pipeinailidiban"); m_pMaxLabel = CCLabelTTF::create("MAX", HS_FONT_HuaKang, 25, pSprite->getContentSize(), kCCTextAlignmentCenter,kCCVerticalTextAlignmentCenter); m_pMaxLabel->setAnchorPoint(HS_ANCHOR_CENTER); m_pMaxLabel->setPosition(pSprite->getAnchorPointInPoints()); m_pMaxLabel->setVisible(false); pSprite->addChild(m_pMaxLabel); this->CreateTimeLabel(); this->schedule(schedule_selector(HSShowEndurance::Updata)); return true; }
void ControllPanel::makeSkillCD(CCObject *pSender) { CCLog("makeSkillCD"); //进入CD状态 this->setMagicCD(true); //设置按钮不可用 m_pMagicItem->setIsEnabled(false); //创建技能cd样式 CCProgressTimer *cd = CCProgressTimer::progressWithFile("actor_btn_mask.png"); cd->setType(kCCProgressTimerTypeRadialCCW); cd->setPosition(m_pMagicItem->getParent()->getPosition()); cd->setPercentage(99.99f); this->addChild(cd, 1000); //技能冷却动画 CCProgressTo *to = CCProgressTo::actionWithDuration(PlayerMrg::getInstance()->getPlayer()->getPlayerSkillCd(), 0); //冷却完成之后的回调,销毁对象,同时使技能按钮可用 CCCallFuncND *callfunn = CCCallFuncND::actionWithTarget(this, callfuncND_selector(ControllPanel::endSkillCD), (void*)cd); cd->runAction(CCSequence::actions(to, callfunn, NULL)); m_lMagicCDLabel->setIsVisible(true); schedule(schedule_selector(ControllPanel::updateCountDown), 1.0f); }
//进度动作 void HelloWorld::JDCallback(CCObject* pSender) { CCProgressTo *to1 = CCProgressTo::actionWithDuration(2,100); CCSprite *jl=CCSprite::spriteWithFile("jl.png"); CCProgressTimer *left = CCProgressTimer::progressWithSprite(jl); left->setType(kCCProgressTimerTypeBar); addChild(left); left->setPosition(CCPointMake(100,s.height/2)); left->runAction(CCRepeatForever::actionWithAction(to1)); }
//------------------------------------------------------------------ // // SpriteProgressToVertical // //------------------------------------------------------------------ void SpriteProgressToVertical::onEnter() { SpriteDemo::onEnter(); CCSize s = CCDirector::sharedDirector()->getWinSize(); CCProgressTo *to1 = CCProgressTo::actionWithDuration(2, 100); CCProgressTo *to2 = CCProgressTo::actionWithDuration(2, 100); CCProgressTimer *left = CCProgressTimer::progressWithFile(s_pPathSister1); left->setType( kCCProgressTimerTypeVerticalBarBT ); addChild(left); left->setPosition(CCPointMake(100, s.height/2)); left->runAction( CCRepeatForever::actionWithAction(to1)); CCProgressTimer *right = CCProgressTimer::progressWithFile(s_pPathSister2); right->setType( kCCProgressTimerTypeVerticalBarTB ); addChild(right); right->setPosition(CCPointMake(s.width-100, s.height/2)); right->runAction( CCRepeatForever::actionWithAction(to2)); }
//------------------------------------------------------------------ // // SpriteProgressWithSpriteFrame // //------------------------------------------------------------------ void SpriteProgressWithSpriteFrame::onEnter() { SpriteDemo::onEnter(); CCSize s = CCDirector::sharedDirector()->getWinSize(); CCProgressTo *to = CCProgressTo::create(6, 100); CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("zwoptex/grossini.plist"); CCProgressTimer *left = CCProgressTimer::create(CCSprite::createWithSpriteFrameName("grossini_dance_01.png")); left->setType(kCCProgressTimerTypeBar); // Setup for a bar starting from the bottom since the midpoint is 0 for the y left->setMidpoint(ccp(0.5f, 0.5f)); // Setup for a vertical bar since the bar change rate is 0 for x meaning no horizontal change left->setBarChangeRate(ccp(1, 0)); addChild(left); left->setPosition(ccp(100, s.height/2)); left->runAction(CCRepeatForever::create((CCActionInterval *)to->copy()->autorelease())); CCProgressTimer *middle = CCProgressTimer::create(CCSprite::createWithSpriteFrameName("grossini_dance_02.png")); middle->setType(kCCProgressTimerTypeBar); // Setup for a bar starting from the bottom since the midpoint is 0 for the y middle->setMidpoint(ccp(0.5f, 0.5f)); // Setup for a vertical bar since the bar change rate is 0 for x meaning no horizontal change middle->setBarChangeRate(ccp(1, 1)); addChild(middle); middle->setPosition(ccp(s.width/2, s.height/2)); middle->runAction(CCRepeatForever::create((CCActionInterval *)to->copy()->autorelease())); CCProgressTimer *right = CCProgressTimer::create(CCSprite::createWithSpriteFrameName("grossini_dance_03.png")); right->setType(kCCProgressTimerTypeRadial); // Setup for a bar starting from the bottom since the midpoint is 0 for the y right->setMidpoint(ccp(0.5f, 0.5f)); // Setup for a vertical bar since the bar change rate is 0 for x meaning no horizontal change right->setBarChangeRate(ccp(0, 1)); addChild(right); right->setPosition(ccp(s.width-100, s.height/2)); right->runAction(CCRepeatForever::create((CCActionInterval *)to->copy()->autorelease())); }
void CCTransitionRadialCCW::onEnter() { CCTransitionScene::onEnter(); // create a transparent color layer // in which we are going to add our rendertextures CCSize size = CCDirector::sharedDirector()->getWinSize(); // create the second render texture for outScene m_OutRT = CCRenderTexture::renderTextureWithWidthAndHeight((int)size.width, (int)size.height); if (NULL == m_OutRT) return; m_OutRT->retain(); m_OutRT->getSprite()->setAnchorPoint(ccp(0.5f,0.5f)); m_OutRT->setPosition(ccp(size.width/2, size.height/2)); m_OutRT->setAnchorPoint(ccp(0.5f,0.5f)); // We need the texture in RenderTexture. CCProgressTimer *outNode = CCProgressTimer::progressWithTexture(m_OutRT->getSprite()->getTexture()); // but it's flipped upside down so we flip the sprite outNode->getSprite()->setFlipY(true); // fix content scale factor for radial texture CCRect rect = CCRectZero; rect.size = m_OutRT->getSprite()->getTexture()->getContentSize(); outNode->getSprite()->setTextureRect(rect, false); float scale = 1.0f / CC_CONTENT_SCALE_FACTOR(); rect.size.width *= scale; rect.size.height *= scale; outNode->setContentSize(rect.size); // Return the radial type that we want to use outNode->setType(radialType()); outNode->setPercentage(100.f); outNode->setPosition(ccp(size.width/2, size.height/2)); outNode->setAnchorPoint(ccp(0.5f,0.5f)); // create the blend action CCAction * layerAction = CCSequence::actions ( CCProgressFromTo::actionWithDuration(m_fDuration, 100.0f, 0.0f), CCEventCall::actionWithTarget(NULL, createEventHandler(this, &CCTransitionScene::_finish)), NULL ); // run the blend action outNode->runAction(layerAction); // add the layer (which contains our two rendertextures) to the scene this->addChild(outNode, 2, kSceneRadial); }
//------------------------------------------------------------------ // // SpriteProgressBarVarious // //------------------------------------------------------------------ void SpriteProgressBarVarious::onEnter() { SpriteDemo::onEnter(); CCSize s = CCDirector::sharedDirector()->getWinSize(); CCProgressTo *to = CCProgressTo::create(2, 100); CCProgressTimer *left = CCProgressTimer::create(CCSprite::create(s_pPathSister1)); left->setType(kCCProgressTimerTypeBar); // Setup for a bar starting from the bottom since the midpoint is 0 for the y left->setMidpoint(ccp(0.5f, 0.5f)); // Setup for a vertical bar since the bar change rate is 0 for x meaning no horizontal change left->setBarChangeRate(ccp(1, 0)); addChild(left); left->setPosition(ccp(100, s.height/2)); left->runAction(CCRepeatForever::create((CCActionInterval *)to->copy()->autorelease())); CCProgressTimer *middle = CCProgressTimer::create(CCSprite::create(s_pPathSister2)); middle->setType(kCCProgressTimerTypeBar); // Setup for a bar starting from the bottom since the midpoint is 0 for the y middle->setMidpoint(ccp(0.5f, 0.5f)); // Setup for a vertical bar since the bar change rate is 0 for x meaning no horizontal change middle->setBarChangeRate(ccp(1,1)); addChild(middle); middle->setPosition(ccp(s.width/2, s.height/2)); middle->runAction(CCRepeatForever::create((CCActionInterval *)to->copy()->autorelease())); CCProgressTimer *right = CCProgressTimer::create(CCSprite::create(s_pPathSister2)); right->setType(kCCProgressTimerTypeBar); // Setup for a bar starting from the bottom since the midpoint is 0 for the y right->setMidpoint(ccp(0.5f, 0.5f)); // Setup for a vertical bar since the bar change rate is 0 for x meaning no horizontal change right->setBarChangeRate(ccp(0, 1)); addChild(right); right->setPosition(ccp(s.width-100, s.height/2)); right->runAction(CCRepeatForever::create((CCActionInterval *)to->copy()->autorelease())); }
void CCTransitionRadialCCW::onEnter() { CCTransitionScene::onEnter(); // create a transparent color layer // in which we are going to add our rendertextures CCSize size = CCDirector::sharedDirector()->getWinSize(); // create the second render texture for outScene CCRenderTexture *outTexture = CCRenderTexture::renderTextureWithWidthAndHeight((int)size.width, (int)size.height); if (NULL == outTexture) { return; } outTexture->getSprite()->setAnchorPoint(ccp(0.5f,0.5f)); outTexture->setPosition(ccp(size.width/2, size.height/2)); outTexture->setAnchorPoint(ccp(0.5f,0.5f)); // render outScene to its texturebuffer outTexture->clear(0,0,0,1); outTexture->begin(); m_pOutScene->visit(); outTexture->end(); // Since we've passed the outScene to the texture we don't need it. this->hideOutShowIn(); // We need the texture in RenderTexture. CCProgressTimer *outNode = CCProgressTimer::progressWithTexture(outTexture->getSprite()->getTexture()); // but it's flipped upside down so we flip the sprite outNode->getSprite()->setFlipY(true); // Return the radial type that we want to use outNode->setType(radialType()); outNode->setPercentage(100.f); outNode->setPosition(ccp(size.width/2, size.height/2)); outNode->setAnchorPoint(ccp(0.5f,0.5f)); // create the blend action CCAction * layerAction = CCSequence::actions ( CCProgressFromTo::actionWithDuration(m_fDuration, 100.0f, 0.0f), CCCallFunc::actionWithTarget(this, callfunc_selector(CCTransitionScene::finish)), NULL ); // run the blend action outNode->runAction(layerAction); // add the layer (which contains our two rendertextures) to the scene this->addChild(outNode, 2, kSceneRadial); }
//------------------------------------------------------------------ // // SpriteProgressToRadial // //------------------------------------------------------------------ void SpriteProgressToRadial::onEnter() { SpriteDemo::onEnter(); CCSize s = CCDirector::sharedDirector()->getWinSize(); CCProgressTo *to1 = CCProgressTo::create(2, 100); CCProgressTo *to2 = CCProgressTo::create(2, 100); CCProgressTimer *left = CCProgressTimer::create(CCSprite::create(s_pPathSister1)); left->setType( kCCProgressTimerTypeRadial ); addChild(left); left->setPosition(CCPointMake(100, s.height/2)); left->runAction( CCRepeatForever::create(to1)); CCProgressTimer *right = CCProgressTimer::create(CCSprite::create(s_pPathBlock)); right->setType(kCCProgressTimerTypeRadial); // Makes the ridial CCW right->setReverseProgress(true); addChild(right); right->setPosition(CCPointMake(s.width-100, s.height/2)); right->runAction( CCRepeatForever::create(to2)); }
bool BattleLayer::init() { if(!CCLayer::init()) return false; m_label = CCLabelTTF::create("第1波", "", 40); m_label->setPosition(ccp(320,800)); m_label->retain(); addChild(m_label); m_effectLabel = CCLabelTTF::create("", "", 30); m_effectLabel->setPosition(ccp(320,750)); m_effectLabel->setColor(ccc3(255,0,0)); addChild(m_effectLabel); m_guardLabel = CCLabelTTF::create("", "", 30); m_guardLabel->setPosition(ccp(320,700)); m_guardLabel->setColor(ccc3(255,255,0)); addChild(m_guardLabel); m_enemySprite = CCSprite::create("icons/0020.png"); m_enemySprite->retain(); CCSprite* hpbg = CCSprite::create("hpbar_bg.png"); CCProgressTimer* hpbar = CCProgressTimer::create(CCSprite::create("hpbar_fore.png")); hpbg->setPosition(ccp(50,100)); hpbar->setPosition(ccp(50,100)); hpbar->setType(kCCProgressTimerTypeBar); hpbar->setBarChangeRate(ccp(1,0)); hpbar->setPercentage(100); hpbar->setMidpoint(CCPointZero); hpbar->setTag(0); m_enemySprite->addChild(hpbg); m_enemySprite->addChild(hpbar); addChild(m_enemySprite,SpritezOrder::Enemy); m_cardbattleLayer = CardBattleLayer::create(); m_cardbattleLayer->retain(); m_setTrapLayer = SetTrapLayer::create(); addChild(m_setTrapLayer); m_pauseSprite = CCSprite::create("pause.png"); m_pauseSprite->setPosition(ccp(590,910)); addChild(m_pauseSprite); return true; }
bool ControlEngine::initProgressIndicator( int tag, cocos2d::CCPoint point, cocos2d::CCPoint anchor ) { CCSprite* progressIndicatorSprite = CCSprite::create( this->getProgressIndicatorName().getCString() ); if( progressIndicatorSprite ) { CCProgressTimer* progressIndicator = CCProgressTimer::create( progressIndicatorSprite ); if( progressIndicator ) { progressIndicator->ignoreAnchorPointForPosition( false ); progressIndicator->setAnchorPoint( anchor ); progressIndicator->setPosition( point ); this->addChild( progressIndicator, Child::Z::progressIndicator, tag ); return true; } } return false; }
void ASGame::HeartBar(){ //1.血条 CCSprite* heartBarSprite = CCSprite::createWithSpriteFrameName("newLifeBar.png"); CCProgressTimer* heartBar = CCProgressTimer::create(heartBarSprite); heartBar->setPosition(ccp(size.width*23.08/80,size.height*85.23/90+winDif*2*alpha*alpha)); heartBar->setType(kCCProgressTimerTypeBar); heartBar->setMidpoint(ccp(0,0.5)); heartBar->setBarChangeRate(ccp(1, 0)); heartBar->setPercentage(100); addChild(heartBar,4,1*10000000+2222); //2.生命数字 string HeartStr = int2string(shengming) + "/" + int2string(maxShengMing); CCLabelTTF* userHeartNumber= CCLabelTTF::create(HeartStr.c_str(), "Arial Rounded MT bold",25); userHeartNumber->setPosition(ccp(size.width*26/80,size.height*82/90+winDif*2*alpha*alpha)); addChild(userHeartNumber,4,1*10000000+2223); }
CCProgressTimer* CCTransitionProgressRadialCW::progressTimerNodeWithRenderTexture(CCRenderTexture* texture) { CCSize size = CCDirector::sharedDirector()->getWinSize(); CCProgressTimer* pNode = CCProgressTimer::create(texture->getSprite()); // but it is flipped upside down so we flip the sprite pNode->getSprite()->setFlipY(true); pNode->setType( kCCProgressTimerTypeRadial ); // Return the radial type that we want to use pNode->setReverseDirection(true); pNode->setPercentage(100); pNode->setPosition(ccp(size.width/2, size.height/2)); pNode->setAnchorPoint(ccp(0.5f,0.5f)); return pNode; }
CCProgressTimer* CCTransitionProgressOutIn::progressTimerNodeWithRenderTexture(CCRenderTexture* texture) { CCSize size = CCDirector::sharedDirector()->getWinSize(); CCProgressTimer* pNode = CCProgressTimer::create(texture->getSprite()); // but it is flipped upside down so we flip the sprite pNode->getSprite()->setFlipY(true); pNode->setType( kCCProgressTimerTypeBar ); pNode->setMidpoint(ccp(0.5f, 0.5f)); pNode->setBarChangeRate(ccp(1, 1)); pNode->setPercentage(100); pNode->setPosition(ccp(size.width/2, size.height/2)); pNode->setAnchorPoint(ccp(0.5f,0.5f)); return pNode; }
void OptionLayer::skillCoolHandler(CCObject* pSender) { OptionLayer *optionLayer = global->optionLayer; UIImageView* skillView = (UIImageView*)pSender; global->hero->setAllowMove(false);//动画执行期间角色不可移动 float SumCD = 10.0f; //判断指向对象是否相等来初始化cd时间 if(optionLayer->getSkill_attack_1() == skillView){ SumCD = optionLayer->skill_SumCD_1; global->hero->RunAttackAction_1(); //执行特殊攻击1动画 }else if(optionLayer->getSkill_attack_2() == skillView){ SumCD = optionLayer->skill_SumCD_2; }else if(optionLayer->getSkill_attack_3() == skillView){ SumCD = optionLayer->skill_SumCD_3; }else if(optionLayer->getSkill_attack() == skillView){ SumCD = optionLayer->skill_SumCD_0; global->hero->RunAttackAction(); //执行普通攻击动画 }else if(optionLayer->getBlood_bottle() == skillView){ SumCD = optionLayer->blood_SumCD; }else if(optionLayer->getMagic_bottle() == skillView){ SumCD = optionLayer->magic_SumCD; } skillView->setTouchEnabled(false); //CD开始,禁止本技能使用 //初始化 cd遮罩 CCTexture2D *spriteTx = CCTextureCache::sharedTextureCache()->addImage("Skill_UI/cooling_cover.png"); CCSprite * SkillCover = CCSprite::createWithTexture(spriteTx); CCProgressTimer *skillTimer = CCProgressTimer::create(SkillCover); skillTimer->setOpacity(125); //透明度 skillTimer->setPosition(skillView->getPosition());//将进度遮罩设置在技能图标位置上 optionLayer->getSkillUI()->addChild(skillTimer); skillTimer->setType(kCCProgressTimerTypeRadial);//扇形 skillTimer->setPercentage(100); skillTimer->setReverseProgress(true); CCProgressTo* cdAction=CCProgressTo::create(SumCD, 100); CCCallFuncND* func=CCCallFuncND::create(this, callfuncND_selector(OptionLayer::allowToClick),skillView);//附带skillView参数 方便cd结束后处理 CCFiniteTimeAction* seq=CCSequence::create(cdAction,func,NULL); skillTimer->runAction(seq); }
void ASBot::energyBarAnimation(){ //1.显示行动力的圆形底座 CCSprite* energyBall = CCSprite::createWithSpriteFrameName("newEnergyContainer.png"); energyBall->setScaleX(-1); energyBall->setPosition(ccp(size.width*62.62/80,size.height*3.85/90+winDif*2*alpha*alpha)); addChild(energyBall,4); //2.行动力数量 string perStr = int2string(moveCount); CCLabelTTF* per = CCLabelTTF::create(perStr.c_str(),"Arial Rounded MT Bold",32); per->setPosition(ccp(size.width*62.3/80,size.height*3.87/90+winDif*2*alpha*alpha)); addChild(per,5,2*10000000+26); //3.能量条 CCSprite* energyBarSprite = CCSprite::createWithSpriteFrameName("newEnergyBar.png"); CCProgressTimer* energyBar = CCProgressTimer::create(energyBarSprite); energyBar->setScaleX(-1); energyBar->setPosition(ccp(size.width*71.6/80,size.height*5.89/90+winDif*2*alpha*alpha)); energyBar->setType(kCCProgressTimerTypeRadial); energyBar->setPercentage(moveCount*20); addChild(energyBar,4,2*10000000+20); }
bool FrontCoverLayer::init() { bool bRet = false; do { CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize(); CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin(); CCSprite* pSprite = CCSprite::create("frontCover.png"); // position the sprite on the center of the screen float scaleX = visibleSize.width/pSprite->getTexture()->getPixelsWide(); float scaleY = visibleSize.height/pSprite->getTexture()->getPixelsHigh(); float scale = (scaleX > scaleY) ? scaleX : scaleY; pSprite->setScaleX(scale); pSprite->setScaleY(scale); pSprite->setPosition(ccp(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y)); this->addChild(pSprite, 0); //SkeletonAnimRcsManager::getInstance()->LoadOneRoleRcsOnly(201); SkeletonAnimRcsManager::getInstance()->LoadOneRoleRcsOnly(202); SkeletonAnimRcsManager::getInstance()->LoadOneRoleRcsOnly(203); EffectSprite* effect1 = ParticleManager::Get()->createEffectSprite(202,""); if(effect1) { effect1->setPosition(ccp(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y)); effect1->getRoot()->setScale(scale); this->addChild(effect1, 1); effect1->SetAnim(kType_Play,1,true); } //effect1 = ParticleManager::Get()->createEffectSprite(201,""); //if(effect1) //{ // effect1->setPosition(ccp(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y)); // effect1->getRoot()->setScale(scale); // this->addChild(effect1, 1); // effect1->SetAnim(kType_Play,1,true); //} effect1 = ParticleManager::Get()->createEffectSprite(203,""); if(effect1) { effect1->setPosition(ccp(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y)); effect1->getRoot()->setScale(scale); this->addChild(effect1, 1); effect1->SetAnim(kType_Play,1,true); } CCSprite* spriteFrame = CCSprite::create("frontCoverFrame.png"); spriteFrame->setScaleX(scale); spriteFrame->setScaleY(scale); spriteFrame->setPosition(ccp(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y)); this->addChild(spriteFrame, 2); schedule(schedule_selector(FrontCoverLayer::update), 1); //ASprite *as = AspriteManager::getInstance()->getAsprite(KUI_BIN); //CCPoint pt; //CCSprite* bar = as->getSpriteFromFrame_Middle(map_ui_FRAME_EQUIPMENT_BAR_EXP, 0, pt); //CCSprite* barFrame = as->getSpriteFromFrame_Middle(map_ui_FRAME_EQUIPMENT_FRAME_EXP, 0, pt); CCSprite* barFrame = CCSprite::create("load0001.png"); barFrame->setPosition(ccp(visibleSize.width/2, visibleSize.height/6)); addChild(barFrame); CCSprite* sp = CCSprite::create("load0002.png"); CCProgressTimer *progressBar = CCProgressTimer::create(sp); barFrame->addChild(progressBar,-1); progressBar->setPosition(ccp(6, barFrame->getContentSize().height/2-4)); progressBar->setType(kCCProgressTimerTypeBar); progressBar->setAnchorPoint(ccp(0,0)); progressBar->setMidpoint(ccp(0,0)); progressBar->setBarChangeRate(ccp(1,0)); progressBar->setPercentage(0.0f); _downloadTTF = CCLabelTTF::create("0%", KJLinXin, 15); _downloadTTF->setColor(ccORANGE); barFrame->addChild(_downloadTTF); _downloadTTF->setPosition(ccp(barFrame->getContentSize().width/2,barFrame->getContentSize().height/2)); _downloadBar = progressBar; //_downloadBar->retain(); _barFrame = barFrame; _barFrame->retain(); GameResourceManager::sharedManager()->updateResource(); GameAudioManager::sharedManager()->playLoadingBGM(); const char* vision = LuaTinkerManager::Get()->callLuaFunc<char *>("Script/main.lua", "getVisionNum"); m_visionLabel = CCLabelTTF::create(vision,KJLinXin,20); if(m_visionLabel) { float scale = UIManager::sharedManager()->getScaleFactor(); m_visionLabel->setColor(ccWHITE); m_visionLabel->setScale(scale); addChild(m_visionLabel); m_visionLabel->setPosition(ccp(visibleSize.width -m_visionLabel->getContentSize().width/2, visibleSize.height -m_visionLabel->getContentSize().height/2)); } m_layout = UIManager::sharedManager()->CreateUILayoutFromFile("UIplist/splashUI.plist", this, "SplashLayout"); UIManager::sharedManager()->RegisterMenuHandler("SplashLayout","FrontCoverLayer::menuLoginGameCallback", menu_selector(FrontCoverLayer::menuLoginGameCallback), this); UIManager::sharedManager()->RegisterMenuHandler("SplashLayout","FrontCoverLayer::onClickedMoreSever", menu_selector(FrontCoverLayer::onClickedMoreSever), this); UIManager::sharedManager()->RegisterMenuHandler("SplashLayout","FrontCoverLayer::onCLickedSeverCloseBt", menu_selector(FrontCoverLayer::onCLickedSeverCloseBt), this); UIManager::sharedManager()->RegisterMenuHandler("SplashLayout","FrontCoverLayer::onClickedLatestSever", menu_selector(FrontCoverLayer::onClickedLatestSever), this); if(m_layout) { m_severScrollPage = m_layout->FindChildObjectByName<UIScrollPage>("severScrollPage"); setLastServerLabel(); m_layout->setVisible(false); } /// response to keyboard this->setKeypadEnabled(true); bRet = true; }while (0); return bRet; }
bool CNFRockerLayer::InitLayer(CNF3DWorldLayer * pLayer,int nStageID) { do { //初始化父类 CC_BREAK_IF(CCLayerColor::initWithColor(ccc4(255,0,0,50))==false); //注册 CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this,-1,false); //设置层大小 setContentSize(CCSizeMake(200,200));//(CCSizeMake(SCREEN_WIDTH*0.5f,SCREEN_HEIGHT)); m_p3DLayer = pLayer; m_bIsTouching = false; m_bIsPublicCD = false; m_fRockerSpeed = _NF_ROCKER_SPEED_; //摇杆的移动速度 m_fRockerMaxDis = _NF_ROCKER_MAX_DIS_; //摇杆最大偏移量 m_nStageID = nStageID; //主角技能ID CNFProtagonist * pPro = dynamic_cast<CNFProtagonist *>(pLayer->getChildByTag(enTagProtagonist)); CC_BREAK_IF(pPro==NULL); m_nSkill_1_ID = pPro->GetSkillInfo_1().nSkill_SkillItemID; m_nSkill_2_ID = pPro->GetSkillInfo_2().nSkill_SkillItemID; m_nSkill_3_ID = pPro->GetSkillInfo_3().nSkill_SkillItemID; m_nSkill_4_ID = pPro->GetSkillInfo_4().nSkill_SkillItemID; m_nSkill_5_ID = pPro->GetSkillInfo_5().nSkill_SkillItemID; //创建摇杆背景 CCSprite * pRockerBg = CCSprite::create("gameui/rocker_bg.png"); CC_BREAK_IF(pRockerBg==NULL); //pRockerBg->setScale(2.5f); pRockerBg->setPosition(ccp(100,100)); addChild(pRockerBg,enZOrderFront,enTagRockerBg); pRockerBg->setOpacity(100.f); //创建摇杆 CCSprite * pRocker = CCSprite::create("gameui/rocker_ball.png"); CC_BREAK_IF(pRocker==NULL); pRocker->setPosition(pRockerBg->getPosition()); addChild(pRocker,enZOrderFront+1,enTagRocker); pRocker->setOpacity(100.f); //若为副本,则创建按钮 if (m_nStageID >= _NF_TOWN_OR_BATTLE_ID_ && m_nStageID <_NF_TOWN_FB_ID_) { /************************************************************************/ /* 创建按钮 */ /************************************************************************/ //创建菜单 CCMenu * pMenu = CCMenu::create(); CC_BREAK_IF(pMenu==NULL); pMenu->setPosition(CCPointZero); addChild(pMenu,enZOrderFront,enTagMenu); //创建普通攻击按钮 CCSprite * pCommon1 = CCSprite::create("gameui/skill_common.png"); CC_BREAK_IF(pCommon1==NULL); CCSprite * pCommon2 = CCSprite::create("gameui/skill_common.png"); CC_BREAK_IF(pCommon2==NULL); pCommon2->setOpacity(150.f); CCMenuItemSprite * pBtnCommon = CCMenuItemSprite::create(pCommon1,pCommon2,this,menu_selector(CNFRockerLayer::OnBtnCallBack)); CC_BREAK_IF(pBtnCommon==NULL); pBtnCommon->setPosition(ccp(SCREEN_WIDTH - 60,58)); pMenu->addChild(pBtnCommon,enZOrderFront,enTagBtnCommonAttack); CCLabelBMFont* pCommonAttackFont = CCLabelBMFont::create("1","fonts/mhp_num.fnt"); pCommonAttackFont->setPosition(pBtnCommon->getPosition()); this->addChild(pCommonAttackFont,enZOrderFront,enTagCommonAttackFont); CCSprite * pCommon3 = CCSprite::create("gameui/skill_common.png"); CC_BREAK_IF(pCommon3==NULL); pCommon3->setColor(ccRED); pCommon3->setOpacity(100.f); //创建普通攻击CD CCProgressTimer* pProgressCommonAttackCD = CCProgressTimer::create(pCommon3); CC_BREAK_IF(pProgressCommonAttackCD==NULL); pProgressCommonAttackCD->setType(kCCProgressTimerTypeRadial); pProgressCommonAttackCD->setMidpoint(ccp(0.5f,0.5f)); pProgressCommonAttackCD->setPercentage(0.f); pProgressCommonAttackCD->setPosition(pBtnCommon->getPosition()); this->addChild(pProgressCommonAttackCD,enZOrderFront+1,enTagCommonAttackCD); //创建技能按钮 for (int i=enTagBtnSkill1;i<=enTagBtnSkill5;i++) { char szName[NAME_LEN] = {0}; int skilltemp = -1; if(i==enTagBtnSkill1){ skilltemp = m_nSkill_1_ID; }else if(i==enTagBtnSkill2){ skilltemp = m_nSkill_2_ID; }else if(i==enTagBtnSkill3){ skilltemp = m_nSkill_3_ID; }else if(i==enTagBtnSkill4){ skilltemp = m_nSkill_4_ID; }else if(i==enTagBtnSkill5){ skilltemp = m_nSkill_5_ID; } if(skilltemp==-1){ continue; } sprintf(szName,"Skill/r%d_s%d.png",pPro->GetRoleID(),skilltemp); CCSprite * pSpr_n = CCSprite::create(szName); CC_BREAK_IF(pSpr_n==NULL); CCSprite * pSpr_p = CCSprite::create(szName); CC_BREAK_IF(pSpr_p==NULL);; pSpr_p->setColor(ccBLUE); CCSprite * pSpr_d = CCSprite::create(szName); CC_BREAK_IF(pSpr_d==NULL); pSpr_d->setOpacity(150.f); CCSprite * pSpr_CD = CCSprite::create(szName); CC_BREAK_IF(pSpr_CD==NULL); pSpr_CD->setColor(ccRED); //创建技能按钮 CCMenuItemSprite * pBtn = CCMenuItemSprite::create(pSpr_n,pSpr_p,pSpr_d,this,menu_selector(CNFRockerLayer::OnBtnCallBack)); CC_BREAK_IF(pBtn==NULL); pMenu->addChild(pBtn,enZOrderFront,i); if(i==enTagBtnSkill1) pBtn->setPosition(ccp(pBtnCommon->getPositionX()+10,pBtnCommon->getPositionY()+90)); else if(i==enTagBtnSkill2) pBtn->setPosition(ccp(pBtnCommon->getPositionX()-110,pBtnCommon->getPositionY()-5)); else if(i==enTagBtnSkill3) pBtn->setPosition(ccp(pBtnCommon->getPositionX()-70,pBtnCommon->getPositionY()+70)); else if(i==enTagBtnSkill4) pBtn->setPosition(ccp(pBtnCommon->getPositionX()-200,pBtnCommon->getPositionY()-5)); else if(i==enTagBtnSkill5) pBtn->setPosition(ccp(pBtnCommon->getPositionX()+10,pBtnCommon->getPositionY()+170)); //创建技能CD CCProgressTimer* pProgress = CCProgressTimer::create(pSpr_p); CC_BREAK_IF(pProgress==NULL); pProgress->setType(kCCProgressTimerTypeRadial); pProgress->setMidpoint(ccp(0.5f,0.5f)); pProgress->setPercentage(0.f); pProgress->setPosition(pBtn->getPosition()); this->addChild(pProgress,enZOrderFront+1,i+100); //技能CD标签 = 技能标签 + 100 //创建公共CD CCProgressTimer* pProgressCD = CCProgressTimer::create(pSpr_CD); CC_BREAK_IF(pProgressCD==NULL); pProgressCD->setType(kCCProgressTimerTypeRadial); pProgressCD->setMidpoint(ccp(0.5f,0.5f)); pProgressCD->setPercentage(0.f); pProgressCD->setPosition(pBtn->getPosition()); this->addChild(pProgressCD,enZOrderFront+2,i+200); //技能CD标签 = 技能标签 + 200 pProgressCD->setVisible(false); } } //更新函数 schedule(schedule_selector(CNFRockerLayer::update)); return true; } while (false); CCLog("Fun CNFRockerLayer::InitLayer Error!"); return false; }
bool MonsterLayer::init() { CCAssert(CCLayer::init(),"CCLayer init failed!"); int iPlayerCount = m_data->size(); this->setTouchEnabled(true); CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this,1,false); float fScreenWidth = CCDirector::sharedDirector()->getVisibleSize().width; float fScreenHeight = CCDirector::sharedDirector()->getVisibleSize().height; for (int i = 0;i<iPlayerCount;++i) { string name = m_data->at(i)->getName(); char pName[MAX_FILE_PATH_LENGTH]; #if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32) GBKToUTF(name); #endif sprintf(pName,MONSTER_DIR_PATH,name.c_str()); CCSprite *pSprite = CCSprite::create(pName); CCAssert(pSprite,"Get Monster sprite failed!"); float fPlayerWidth = pSprite->getContentSize().width; float fPlayerHeight = pSprite->getContentSize().height; float xpos = fScreenWidth*0.5+(i-iPlayerCount*0.5+0.5)*fPlayerWidth; float ypos = fScreenHeight*0.6; pSprite->setPosition(ccp(xpos,ypos)); pSprite->setOpacity(0); addChild(pSprite,0,i); m_monsters->addObject(pSprite); m_originalPos.insert(make_pair(i,ccp(xpos,ypos))); //HP Bar CCProgressTimer *hpBarTimer = CCProgressTimer::create(CCSprite::create(MONSTER_HP_BAR_PATH)); hpBarTimer->setType(kCCProgressTimerTypeBar); hpBarTimer->setMidpoint(ccp(0,0)); hpBarTimer->setPercentage(100); hpBarTimer->setBarChangeRate(ccp(1,0)); hpBarTimer->setPosition(ccp(pSprite->getPositionX(), pSprite->getPositionY() + fPlayerHeight*0.5 + hpBarTimer->getContentSize().height*0.5)); hpBarTimer->setOpacity(0); addChild(hpBarTimer,1,iPlayerCount+i); } //Damage number m_pFont = CCLabelBMFont::create("0",FONT_PATH); m_pFont->setColor(ccYELLOW); m_pFont->setOpacity(0); addChild(m_pFont,4); //Magic matrix tag m_magicTag = CCSprite::create(MAGIC_BTN_PATH); m_magicTag->setOpacity(0); m_magicTag->setPosition(ccp(750,550)); addChild(m_magicTag); m_magicPointer = CCSprite::create(MAGIC_UNAVA_PATH); m_magicPointer->setOpacity(0); m_magicPointer->setPosition(ccp(750,550)); addChild(m_magicPointer); m_magicAva = CCTextureCache::sharedTextureCache()->addImage(MAGIC_AVA_PATH); m_magicUnava = CCTextureCache::sharedTextureCache()->addImage(MAGIC_UNAVA_PATH); m_longHPBar = CCProgressTimer::create(CCSprite::create(LONG_HP_BAR)); m_longHPBar->setType(kCCProgressTimerTypeBar); m_longHPBar->setMidpoint(ccp(0,0)); m_longHPBar->setPercentage(100); m_longHPBar->setBarChangeRate(ccp(1,0)); m_longHPBar->setOpacity(0); m_longHPBar->setPosition(ccp(fScreenWidth*0.5,fScreenHeight*0.3)); addChild(m_longHPBar,2); m_timeBarEmpty = CCSprite::create(TIME_BAR_EMPTY); m_timeBarEmpty->setOpacity(0); m_timeBarEmpty->setPosition(ccp(fScreenWidth*0.5,fScreenHeight*0.7)); addChild(m_timeBarEmpty,2); m_timeBarFull = CCProgressTimer::create(CCSprite::create(TIME_BAR_FULL)); m_timeBarFull->setType(kCCProgressTimerTypeBar); m_timeBarFull->setMidpoint(ccp(0,0)); m_timeBarFull->setPercentage(100); m_timeBarFull->setBarChangeRate(ccp(1,0)); m_timeBarFull->setOpacity(0); m_timeBarFull->setPosition(ccp(fScreenWidth*0.5,fScreenHeight*0.7)); addChild(m_timeBarFull,2); CCSpriteFrameCache *cache = CCSpriteFrameCache::sharedSpriteFrameCache(); cache->addSpriteFramesWithFile(BUBBLE_PLIST_PATH,BUBBLE_TEXTURE_PATH); return true; }
//碰撞检测 void game_bj::auto_pz(char id) { CCSprite *sprinte_11 = (CCSprite*)getChildByTag(11); CCSprite *sprinte_12 = (CCSprite*)getChildByTag(12); CCSprite *sprinte_13 = (CCSprite*)getChildByTag(13); CCSprite *sprinte_14 = (CCSprite*)getChildByTag(14); CCSprite *sprinte_15 = (CCSprite*)getChildByTag(15); CCSprite *sprinte_11_a = (CCSprite*)getChildByTag(21); CCSprite *sprinte_12_a = (CCSprite*)getChildByTag(22); CCSprite *sprinte_13_a = (CCSprite*)getChildByTag(23); CCSprite *sprinte_14_a = (CCSprite*)getChildByTag(24); CCSprite *sprinte_15_a = (CCSprite*)getChildByTag(25); CCSprite *sprinte_11_b = (CCSprite*)getChildByTag(31); CCSprite *sprinte_12_b = (CCSprite*)getChildByTag(32); CCSprite *sprinte_13_b = (CCSprite*)getChildByTag(33); CCSprite *sprinte_14_b = (CCSprite*)getChildByTag(34); CCSprite *sprinte_15_b = (CCSprite*)getChildByTag(35); CCSprite *sprinte_11_y_a = (CCSprite*)getChildByTag(41); CCSprite *sprinte_12_y_a = (CCSprite*)getChildByTag(42); CCSprite *sprinte_13_y_a = (CCSprite*)getChildByTag(43); CCSprite *sprinte_14_y_a = (CCSprite*)getChildByTag(44); CCSprite *sprinte_15_y_a = (CCSprite*)getChildByTag(45); CCSprite *sprinte_11_y_b = (CCSprite*)getChildByTag(51); CCSprite *sprinte_12_y_b = (CCSprite*)getChildByTag(52); CCSprite *sprinte_13_y_b = (CCSprite*)getChildByTag(53); CCSprite *sprinte_14_y_b = (CCSprite*)getChildByTag(54); CCSprite *sprinte_15_y_b = (CCSprite*)getChildByTag(55); for (int ii = 101; ii<=112; ii++) { CCSprite *sprinte_xxx = (CCSprite*)getChildByTag(ii); if(sprinte_xxx) { // CCLOG("44"); bool ret_1 = false; bool ret_2 = false; bool ret_3 = false; bool ret_4 = false; bool ret_5 = false; if(sprinte_11) { ret_1 = CCRect::CCRectIntersectsRect(sprinte_xxx->boundingBox(), sprinte_11->boundingBox()); } if(sprinte_12) { ret_2 = CCRect::CCRectIntersectsRect(sprinte_xxx->boundingBox(), sprinte_12->boundingBox()); } if(sprinte_13) { ret_3 = CCRect::CCRectIntersectsRect(sprinte_xxx->boundingBox(), sprinte_13->boundingBox()); } if(sprinte_14) { ret_4 = CCRect::CCRectIntersectsRect(sprinte_xxx->boundingBox(), sprinte_14->boundingBox()); } if(sprinte_15) { ret_5 = CCRect::CCRectIntersectsRect(sprinte_xxx->boundingBox(), sprinte_15->boundingBox()); } if(ret_1) { CCPoint point = sprinte_11->getPosition(); // CCLOG("1"); // this->removeChild(sprinte_11, true); // this->removeChild(sprinte_11_a, true); // this->removeChild(sprinte_11_b, true); // this->removeChild(sprinte_11_y_a, true); // this->removeChild(sprinte_11_y_b, true); int new_value_11 = game_bj::e_11-10; if(new_value_11 <= 0) { this->removeChild(sprinte_11, true); this->removeChild(sprinte_11_a, true); this->removeChild(sprinte_11_b, true); this->removeChild(sprinte_11_y_a, true); this->removeChild(sprinte_11_y_b, true); CCProgressTimer *pt = (CCProgressTimer*)getChildByTag(71); if(pt) { this->removeChild(pt, true); } game_bj::e_11 = 100; } CCProgressTimer *pt = (CCProgressTimer*)getChildByTag(71); if(pt) { pt->setPercentage(game_bj::e_11); pt->setPosition( ccp(point.x, point.y-20) ); pt->setType(kCCProgressTimerTypeBar); CCFiniteTimeAction *action_1 = CCMoveTo::create((7*(point.y-1))/520,ccp(point.x,1)); pt->runAction(action_1); CCProgressTo *to = CCProgressTo::actionWithDuration(0.1, new_value_11); pt->runAction(to); game_bj::e_11 = game_bj::e_11-10; } else { CCSprite *sprinte_11 = (CCSprite*)getChildByTag(11); if(sprinte_11) { CCProgressTimer *pt = CCProgressTimer::progressWithSprite(CCSprite::create("hatchling_exp_02.png")); pt->setPercentage(game_bj::e_11); pt->setPosition( ccp(point.x, point.y-20) ); pt->setType(kCCProgressTimerTypeBar); pt->setScale(0.4); pt->setMidpoint(ccp(0,0)); pt->setBarChangeRate(ccp(1,0)); this->addChild(pt,0,71); CCFiniteTimeAction *action_1 = CCMoveTo::create((7*(point.y-1))/520,ccp(point.x,1)); pt->runAction(action_1); CCProgressTo *to = CCProgressTo::actionWithDuration(0.1, new_value_11); pt->runAction(to); game_bj::e_11 = game_bj::e_11-10; } } CCSprite *item_gb = new CCSprite(); item_gb->initWithFile("item_coin.png"); item_gb->setPosition( ccp(point.x, point.y) ); item_gb->setScale(game_bj::scale); this->addChild(item_gb, 0,61); CCJumpTo* mJumpTo = CCJumpTo::actionWithDuration(2.0f, ccp(280, 1), 230.0f, 1); CCActionInterval* seq_aa = (CCActionInterval*)(CCSequence::actions(mJumpTo, NULL)); item_gb->runAction(seq_aa); } if(ret_2) { CCPoint point = sprinte_12->getPosition(); CCLOG("2"); this->removeChild(sprinte_12, true); this->removeChild(sprinte_12_a, true); this->removeChild(sprinte_12_b, true); this->removeChild(sprinte_12_y_a, true); this->removeChild(sprinte_12_y_b, true); CCSprite *item_gb = new CCSprite(); item_gb->initWithFile("item_coin.png"); item_gb->setPosition( ccp(point.x, point.y) ); item_gb->setScale(game_bj::scale); this->addChild(item_gb, 0,62); CCJumpTo* mJumpTo = CCJumpTo::actionWithDuration(2.0f, ccp(280, 1), 230.0f, 1); CCActionInterval* seq_aa = (CCActionInterval*)(CCSequence::actions(mJumpTo, NULL)); item_gb->runAction(seq_aa); } if(ret_3) { CCPoint point = sprinte_13->getPosition(); int new_value = game_bj::e_13-10; CCLOG("%i",new_value); if(new_value <= 0) { this->removeChild(sprinte_13, true); this->removeChild(sprinte_13_a, true); this->removeChild(sprinte_13_b, true); this->removeChild(sprinte_13_y_a, true); this->removeChild(sprinte_13_y_b, true); CCProgressTimer *pt = (CCProgressTimer*)getChildByTag(73); if(pt) { this->removeChild(pt, true); } game_bj::e_13 = 100; } CCProgressTimer *pt = (CCProgressTimer*)getChildByTag(73); if(pt) { pt->setPercentage(game_bj::e_13); pt->setPosition( ccp(point.x, point.y-20) ); pt->setType(kCCProgressTimerTypeBar); CCFiniteTimeAction *action_1 = CCMoveTo::create((7*(point.y-1))/520,ccp(point.x,1)); pt->runAction(action_1); CCProgressTo *to = CCProgressTo::actionWithDuration(0.1, new_value); pt->runAction(to); game_bj::e_13 = game_bj::e_13-10; } else { CCSprite *sprinte_13 = (CCSprite*)getChildByTag(13); if(sprinte_13) { CCProgressTimer *pt = CCProgressTimer::progressWithSprite(CCSprite::create("hatchling_exp_02.png")); pt->setPercentage(game_bj::e_13); pt->setPosition( ccp(point.x, point.y-20) ); pt->setType(kCCProgressTimerTypeBar); pt->setScale(0.4); pt->setMidpoint(ccp(0,0)); pt->setBarChangeRate(ccp(1,0)); this->addChild(pt,0,73); CCFiniteTimeAction *action_1 = CCMoveTo::create((7*(point.y-1))/520,ccp(point.x,1)); pt->runAction(action_1); CCProgressTo *to = CCProgressTo::actionWithDuration(0.1, new_value); pt->runAction(to); game_bj::e_13 = game_bj::e_13-10; } } CCSprite *item_gb = new CCSprite(); item_gb->initWithFile("item_coin.png"); item_gb->setPosition( ccp(point.x, point.y) ); item_gb->setScale(game_bj::scale); this->addChild(item_gb, 0,63); CCJumpTo* mJumpTo = CCJumpTo::actionWithDuration(2.0f, ccp(280, 1), 230.0f, 1); CCActionInterval* seq_aa = (CCActionInterval*)(CCSequence::actions(mJumpTo, NULL)); item_gb->runAction(seq_aa); } if(ret_4) { CCPoint point = sprinte_14->getPosition(); // CCLOG("4"); // this->removeChild(sprinte_14, true); // this->removeChild(sprinte_14_a, true); // this->removeChild(sprinte_14_b, true); // this->removeChild(sprinte_14_y_a, true); // this->removeChild(sprinte_14_y_b, true); int new_value_14 = game_bj::e_14-10; if(new_value_14 <= 0) { this->removeChild(sprinte_14, true); this->removeChild(sprinte_14_a, true); this->removeChild(sprinte_14_b, true); this->removeChild(sprinte_14_y_a, true); this->removeChild(sprinte_14_y_b, true); CCProgressTimer *pt = (CCProgressTimer*)getChildByTag(74); if(pt) { this->removeChild(pt, true); } game_bj::e_14 = 100; } CCProgressTimer *pt = (CCProgressTimer*)getChildByTag(74); if(pt) { pt->setPercentage(game_bj::e_14); pt->setPosition( ccp(point.x, point.y-20) ); pt->setType(kCCProgressTimerTypeBar); CCFiniteTimeAction *action_1 = CCMoveTo::create((7*(point.y-1))/520,ccp(point.x,1)); pt->runAction(action_1); CCProgressTo *to = CCProgressTo::actionWithDuration(0.1, new_value_14); pt->runAction(to); game_bj::e_14 = game_bj::e_14-10; } else { CCSprite *sprinte_14 = (CCSprite*)getChildByTag(14); if(sprinte_14) { CCProgressTimer *pt = CCProgressTimer::progressWithSprite(CCSprite::create("hatchling_exp_02.png")); pt->setPercentage(game_bj::e_14); pt->setPosition( ccp(point.x, point.y-20) ); pt->setType(kCCProgressTimerTypeBar); pt->setScale(0.4); pt->setMidpoint(ccp(0,0)); pt->setBarChangeRate(ccp(1,0)); this->addChild(pt,0,74); CCFiniteTimeAction *action_1 = CCMoveTo::create((7*(point.y-1))/520,ccp(point.x,1)); pt->runAction(action_1); CCProgressTo *to = CCProgressTo::actionWithDuration(0.1, new_value_14); pt->runAction(to); game_bj::e_14 = game_bj::e_14-10; } } CCSprite *item_gb = new CCSprite(); item_gb->initWithFile("item_coin.png"); item_gb->setPosition( ccp(point.x, point.y) ); item_gb->setScale(game_bj::scale); this->addChild(item_gb, 0,64); CCJumpTo* mJumpTo = CCJumpTo::actionWithDuration(2.0f, ccp(280, 1), 230.0f, 1); CCActionInterval* seq_aa = (CCActionInterval*)(CCSequence::actions(mJumpTo, NULL)); item_gb->runAction(seq_aa); } if(ret_5) { CCPoint point = sprinte_15->getPosition(); CCLOG("5"); this->removeChild(sprinte_15, true); this->removeChild(sprinte_15_a, true); this->removeChild(sprinte_15_b, true); this->removeChild(sprinte_15_y_a, true); this->removeChild(sprinte_15_y_b, true); CCSprite *item_gb = new CCSprite(); item_gb->initWithFile("item_coin.png"); item_gb->setPosition( ccp(130, 340) ); item_gb->setScale(game_bj::scale); this->addChild(item_gb, 0,64); CCJumpTo* mJumpTo = CCJumpTo::actionWithDuration(2.0f, ccp(280, 1), 230.0f, 1); CCActionInterval* seq_aa = (CCActionInterval*)(CCSequence::actions(mJumpTo, NULL)); item_gb->runAction(seq_aa); } CCPoint a = sprinte_xxx->getPosition(); if( a.y>=477) { this->removeChild(sprinte_xxx, true); if(ii==101) { game_bj::a=1; // CCUserDefault::sharedUserDefault()->setIntegerForKey("a", 1); // CCUserDefault::sharedUserDefault()->flush(); } else if(ii==102) { game_bj::b=1; // CCUserDefault::sharedUserDefault()->setIntegerForKey("b", 1); // CCUserDefault::sharedUserDefault()->flush(); } else if(ii==103) { game_bj::c=1; // CCUserDefault::sharedUserDefault()->setIntegerForKey("c", 1); // CCUserDefault::sharedUserDefault()->flush(); } else if(ii==104) { game_bj::d=1; // CCUserDefault::sharedUserDefault()->setIntegerForKey("d", 1); // CCUserDefault::sharedUserDefault()->flush(); } else if(ii==105) { game_bj::e=1; // CCUserDefault::sharedUserDefault()->setIntegerForKey("e", 1); // CCUserDefault::sharedUserDefault()->flush(); } else if(ii==106) { game_bj::f=1; // CCUserDefault::sharedUserDefault()->setIntegerForKey("f", 1); // CCUserDefault::sharedUserDefault()->flush(); } else if(ii==107) { game_bj::g=1; // CCUserDefault::sharedUserDefault()->setIntegerForKey("g", 1); // CCUserDefault::sharedUserDefault()->flush(); } else if(ii==108) { game_bj::h=1; // CCUserDefault::sharedUserDefault()->setIntegerForKey("h", 1); // CCUserDefault::sharedUserDefault()->flush(); } else if(ii==109) { game_bj::i=1; // CCUserDefault::sharedUserDefault()->setIntegerForKey("i", 1); // CCUserDefault::sharedUserDefault()->flush(); } else if(ii==110) { game_bj::j=1; // CCUserDefault::sharedUserDefault()->setIntegerForKey("j", 1); // CCUserDefault::sharedUserDefault()->flush(); } else if(ii==111) { game_bj::k=1; // CCUserDefault::sharedUserDefault()->setIntegerForKey("k", 1); // CCUserDefault::sharedUserDefault()->flush(); } else if(ii==112) { game_bj::l=1; // CCUserDefault::sharedUserDefault()->setIntegerForKey("l", 1); // CCUserDefault::sharedUserDefault()->flush(); } } } } for (int i=11; i<=15; i++) { CCSprite *sprinte_yyy = (CCSprite*)getChildByTag(i); CCSprite *sprinte_yyy_a = (CCSprite*)getChildByTag(i+10); CCSprite *sprinte_yyy_b = (CCSprite*)getChildByTag(i+20); CCSprite *sprinte_yyy_y_a = (CCSprite*)getChildByTag(i+30); CCSprite *sprinte_yyy_y_b = (CCSprite*)getChildByTag(i+40); CCSprite *sprinte_item_gb = (CCSprite*)getChildByTag(i+50); CCSprite *sprinte_pt = (CCSprite*)getChildByTag(i+60); if(sprinte_yyy) { CCPoint a = sprinte_yyy->getPosition(); if( a.y <= 10) { this->removeChild(sprinte_yyy, true); } } if(sprinte_yyy_a) { CCPoint a = sprinte_yyy_a->getPosition(); if( a.y <= 10) { this->removeChild(sprinte_yyy_a, true); } } if(sprinte_yyy_b) { CCPoint a = sprinte_yyy_b->getPosition(); if( a.y <= 10) { this->removeChild(sprinte_yyy_b, true); } } if(sprinte_yyy_y_a) { CCPoint a = sprinte_yyy_y_a->getPosition(); if( a.y <= 10) { this->removeChild(sprinte_yyy_y_a, true); } } if(sprinte_yyy_y_b) { CCPoint a = sprinte_yyy_y_b->getPosition(); if( a.y <= 10) { this->removeChild(sprinte_yyy_y_b, true); } } if(sprinte_item_gb) { CCPoint a = sprinte_item_gb->getPosition(); if( a.y <= 10) { this->removeChild(sprinte_item_gb, true); } } if(sprinte_pt) { CCPoint a = sprinte_pt->getPosition(); if( a.y <= 10) { this->removeChild(sprinte_pt, true); game_bj::e_11 = 100; game_bj::e_12 = 100; game_bj::e_13 = 100; game_bj::e_14 = 100; game_bj::e_15 = 100; } } } }