mirror of
https://github.com/wu736139669/SmallGame_Cocos2dx.git
synced 2026-08-05 06:23:09 +00:00
616 lines
25 KiB
C++
616 lines
25 KiB
C++
//
|
|
// GameLayer_MaxScore.cpp
|
|
// OnceAgain
|
|
//
|
|
// Created by mac on 14-4-14.
|
|
//
|
|
//
|
|
|
|
#include "GameLayer_MaxScore.h"
|
|
#include "StringUtil.h"
|
|
#include "NumSprite.h"
|
|
#include "GameShare_Global.h"
|
|
#include "Scene_GameItem.h"
|
|
#include "TaskManager.h"
|
|
|
|
GameLayer_MaxScore::~GameLayer_MaxScore()
|
|
{
|
|
GUIReader::shareReader()->purgeGUIReader();
|
|
DictionaryHelper::shareHelper()->purgeDictionaryHelper();
|
|
ActionManager::shareManager()->purgeActionManager();
|
|
}
|
|
|
|
bool GameLayer_MaxScore::init()
|
|
{
|
|
if (!CCLayer::init()) {
|
|
return false;
|
|
}
|
|
|
|
|
|
CCSize visiableSize = CCDirector::sharedDirector()->getVisibleSize();
|
|
|
|
//背景
|
|
ulBg = UILayer::create();
|
|
ulBg->retain();
|
|
auto layoutBg = dynamic_cast<Layout*>(GUIReader::shareReader()->widgetFromJsonFile("./CocoStudioResources/GameOver.json"));
|
|
layoutBg->setTag(100);
|
|
ulBg->addWidget(layoutBg);
|
|
ulBg->setContentSize(visiableSize);
|
|
this->addChild(ulBg,10);
|
|
|
|
addImg = dynamic_cast<UIImageView*>(ulBg->getWidgetByName("AddImg"));
|
|
goldImg = dynamic_cast<UIImageView*>(ulBg->getWidgetByName("GoldImg"));
|
|
expImg = dynamic_cast<UIImageView*>(ulBg->getWidgetByName("ExperienceImg"));
|
|
addSpriteBg = dynamic_cast<UIImageView*>(ulBg->getWidgetByName("Image_14"));
|
|
goldSpriteBg = dynamic_cast<UIImageView*>(ulBg->getWidgetByName("Image_14_0"));
|
|
expSpriteBg = dynamic_cast<UIImageView*>(ulBg->getWidgetByName("Image_14_0_1"));
|
|
//返回列表按钮.
|
|
returnBtn = dynamic_cast<UIButton*>(ulBg->getWidgetByName("ReturnBtn"));
|
|
returnBtn->setPressedActionEnabled(true);
|
|
returnBtn->addReleaseEvent(this, coco_releaseselector(GameLayer_MaxScore::sureBtnCallback));
|
|
|
|
againBtn = dynamic_cast<UIButton*>(ulBg->getWidgetByName("AgainBtn"));
|
|
againBtn->setPressedActionEnabled(true);
|
|
againBtn->addReleaseEvent(this, coco_releaseselector(GameLayer_MaxScore::playAgain));
|
|
|
|
addSprite = NumSprite::getNumSprite("./CocoStudioResources/FriendListTimeNumAdd.png","",GameShare_Global::shareGlobal()->gameProperty.totolscore-GameShare_Global::shareGlobal()->gameProperty.prescore, "./CocoStudioResources/FriendListTimeNum", 20.0, 1);
|
|
addSprite->ignoreAnchorPointForPosition(false);
|
|
addSprite->setAnchorPoint(ccp(0.5, 0.5));
|
|
this->addChild(addSprite,10);
|
|
addSprite->setPosition(ccp(430 , 520));
|
|
//添加金币.
|
|
int money = CTaskMan::sharedInstance().getAddMoney() + GameShare_Global::shareGlobal()->gameProperty.addmoney;
|
|
goldSprite = NumSprite::getNumSprite("./CocoStudioResources/FriendListTimeNumAdd.png","", money, "./CocoStudioResources/FriendListTimeNum", 20.0, 1);
|
|
goldSprite->ignoreAnchorPointForPosition(false);
|
|
goldSprite->setAnchorPoint(ccp(0.5, 0.5));
|
|
this->addChild(goldSprite,10);
|
|
goldSprite->setPosition(ccp(430, 460));
|
|
//添加经验
|
|
expSprite = NumSprite::getNumSprite("./CocoStudioResources/FriendListTimeNumAdd.png","",GameShare_Global::shareGlobal()->gameProperty.addexp, "./CocoStudioResources/FriendListTimeNum", 20.0, 1);
|
|
expSprite->ignoreAnchorPointForPosition(false);
|
|
expSprite->setAnchorPoint(ccp(0.5, 0.5));
|
|
this->addChild(expSprite,10);
|
|
expSprite->setPosition(ccp(430, 398));
|
|
|
|
|
|
ul = UILayer::create();
|
|
auto myLayout = dynamic_cast<Layout*>(GUIReader::shareReader()->widgetFromJsonFile("./CocoStudioResources/GameOverMax.json"));
|
|
ul->addWidget(myLayout);
|
|
ul->setContentSize(visiableSize);
|
|
this->addChild(ul,10);
|
|
|
|
UIImageView *light = dynamic_cast<UIImageView*>(ul -> getWidgetByName("Image_19"));
|
|
CCRotateBy *rotate = CCRotateBy::create(2, 90);
|
|
light -> runAction(CCRepeatForever::create(rotate));
|
|
|
|
//历史最高分图片
|
|
UIImageView *historyPic = dynamic_cast<UIImageView*>(ul -> getWidgetByName("ScoreMaxPic"));
|
|
historyPic -> setVisible(false);
|
|
|
|
UIImageView *hisroryPicUp = dynamic_cast<UIImageView*>(ul -> getWidgetByName("historyScoreUp"));
|
|
hisroryPicUp -> setVisible(false);
|
|
|
|
UIImageView *histroyTop = dynamic_cast<UIImageView*>(ul -> getWidgetByName("Image_63"));
|
|
histroyTop -> setVisible(false);
|
|
|
|
UIImageView *finishScore = dynamic_cast<UIImageView*>(ul -> getWidgetByName("Image_12"));
|
|
finishScore -> setVisible(false);
|
|
UIImageView* bgImg = dynamic_cast<UIImageView*>(ul->getWidgetByName("ScoreBgImg"));
|
|
//历史最高分
|
|
lvLabel = dynamic_cast<UILabelAtlas*>(ul->getWidgetByName("AtlasLabel_4"));
|
|
lvLabel->setVisible(false);
|
|
|
|
star1 = dynamic_cast<UIImageView*>(ul->getWidgetByName("Image_58"));
|
|
star2 = dynamic_cast<UIImageView*>(ul->getWidgetByName("Image_20"));
|
|
star3 = dynamic_cast<UIImageView*>(ul->getWidgetByName("Image_37"));
|
|
star4 = dynamic_cast<UIImageView*>(ul->getWidgetByName("Image_41"));
|
|
star5 = dynamic_cast<UIImageView*>(ul->getWidgetByName("Image_23"));
|
|
star6 = dynamic_cast<UIImageView*>(ul->getWidgetByName("Image_16"));
|
|
star7 = dynamic_cast<UIImageView*>(ul->getWidgetByName("Image_45"));
|
|
star8 = dynamic_cast<UIImageView*>(ul->getWidgetByName("Image_48"));
|
|
CCFiniteTimeAction* seq1 = CCSequence::create(CCScaleTo::create(0.8,1.8),CCScaleTo::create(0.8,2.0),NULL);
|
|
CCFiniteTimeAction* seq2 = CCSequence::create(CCScaleTo::create(0.8,0.8),CCScaleTo::create(0.8,1.0),NULL);
|
|
CCFiniteTimeAction* seq3 = CCSequence::create(CCScaleTo::create(0.8,1.6),CCScaleTo::create(0.8,1.8),NULL);
|
|
CCFiniteTimeAction* seq4 = CCSequence::create(CCScaleTo::create(0.8,0.6),CCScaleTo::create(0.8,0.8),NULL);
|
|
CCFiniteTimeAction* seq5 = CCSequence::create(CCScaleTo::create(0.8,0.3),CCScaleTo::create(0.8,0.5),NULL);
|
|
CCActionInterval * repeatForever1 =CCRepeatForever::create((CCActionInterval* )seq2);
|
|
CCActionInterval * repeatForever2 =CCRepeatForever::create((CCActionInterval* )seq1);
|
|
CCActionInterval * repeatForever3 =CCRepeatForever::create((CCActionInterval* )seq1);
|
|
CCActionInterval * repeatForever4 =CCRepeatForever::create((CCActionInterval* )seq1);
|
|
CCActionInterval * repeatForever5 =CCRepeatForever::create((CCActionInterval* )seq2);
|
|
CCActionInterval * repeatForever6 =CCRepeatForever::create((CCActionInterval* )seq3);
|
|
CCActionInterval * repeatForever7 =CCRepeatForever::create((CCActionInterval* )seq4);
|
|
CCActionInterval * repeatForever8 =CCRepeatForever::create((CCActionInterval* )seq5);
|
|
star1->runAction(repeatForever1);
|
|
star2->runAction(repeatForever2);
|
|
star3->runAction(repeatForever3);
|
|
star4->runAction(repeatForever4);
|
|
star5->runAction(repeatForever5);
|
|
star6->runAction(repeatForever6);
|
|
star7->runAction(repeatForever7);
|
|
star8->runAction(repeatForever8);
|
|
|
|
|
|
|
|
//历史最高分的放大效果
|
|
UIImageView* scarfImg = dynamic_cast<UIImageView*>(ul->getWidgetByName("Image_8"));
|
|
scarfImg->runAction(CCSequence::create(CCScaleTo::create(0.0, 3.0), CCScaleTo::create(0.5, 1.0), CCCallFunc::create(this, callfunc_selector(GameLayer_MaxScore::setScoreCallBack)),NULL));
|
|
int i = GameShare_Global::shareGlobal()->gameProperty.totolscore;
|
|
int j = GameShare_Global::shareGlobal()->gameProperty.highestscore;
|
|
long k = GameShare_Global::shareGlobal()->gameProperty.historyscore;
|
|
CCString str;
|
|
if(GameShare_Global::shareGlobal()->gameProperty.totolscore >= GameShare_Global::shareGlobal()->gameProperty.historyscore){
|
|
//创造历史最高分的文字效果.
|
|
histroyTop -> setVisible(true);
|
|
historyPic -> setVisible(true);
|
|
hisroryPicUp -> setVisible(true);
|
|
hisroryPicUp -> setScale(0.8);
|
|
CCScaleTo *scale1 = CCScaleTo::create(0.3, 1.1);
|
|
CCScaleTo *scale3 = CCScaleTo::create(0.06, 0.8);
|
|
CCScaleTo *scale4 = CCScaleTo::create(0.06, 1);
|
|
CCScaleTo *scale2 = CCScaleTo::create(0.01, 0.8);
|
|
CCSequence *action = CCSequence::create(scale1, scale3, scale4, CCDelayTime::create(1), scale2, NULL);
|
|
|
|
hisroryPicUp -> runAction(CCRepeatForever::create(action));
|
|
|
|
//边上星星效果.
|
|
CCAnimation* pAni1 = CCAnimation::create();
|
|
for (int i=1; i<=13; i++) {
|
|
str.initWithFormat("./CocoStudioResources/GameOver/StarEffect_%d.png",i);
|
|
pAni1->addSpriteFrameWithFileName(str.getCString());
|
|
}
|
|
pAni1->setDelayPerUnit(0.8f/9.f);
|
|
pAni1->setLoops(1);
|
|
|
|
for (int i=0; i<5; i++) {
|
|
CCSprite* starEffect = CCSprite::create();
|
|
|
|
CCFiniteTimeAction* pAction1 = CCRepeatForever::create(CCAnimate::create(pAni1));
|
|
auto *pic_1 = CCSprite::create("./CocoStudioResources/GameOver/StarEffect_1.png");
|
|
starEffect->setTexture(pic_1 -> getTexture());
|
|
starEffect->setTextureRect(CCRectMake(0, 0, pic_1 -> getContentSize().width, pic_1 -> getContentSize().height));
|
|
// starEffect->runAction(pAction1);
|
|
this->addChild(starEffect,0);
|
|
switch (i) {
|
|
case 0:
|
|
{
|
|
starEffect->setPosition(ccp(bgImg->getPosition().x, bgImg->getPosition().y+240));
|
|
starEffect->runAction(CCSequence::create(CCDelayTime::create(0.5),CCCallFuncO::create(starEffect, callfuncO_selector(CCSprite::runAction),pAction1),NULL));
|
|
}
|
|
break;
|
|
case 1:
|
|
{
|
|
starEffect->setPosition(ccp(bgImg->getPosition().x+230, bgImg->getPosition().y+200));
|
|
starEffect->setRotation(30);
|
|
starEffect->runAction(CCSequence::create(CCDelayTime::create(1.0),CCCallFuncO::create(starEffect, callfuncO_selector(CCSprite::runAction),pAction1),NULL));
|
|
}
|
|
break;
|
|
case 2:
|
|
{
|
|
starEffect->setPosition(ccp(bgImg->getPosition().x-290, bgImg->getPosition().y+140));
|
|
starEffect->setRotation(-50);
|
|
starEffect->runAction(CCSequence::create(CCDelayTime::create(1.5),CCCallFuncO::create(starEffect, callfuncO_selector(CCSprite::runAction),pAction1),NULL));
|
|
}
|
|
break;
|
|
case 3:
|
|
{
|
|
starEffect->setPosition(ccp(bgImg->getPosition().x-270, bgImg->getPosition().y-100));
|
|
starEffect->setRotation(-120);
|
|
starEffect->runAction(CCSequence::create(CCDelayTime::create(2.0),CCCallFuncO::create(starEffect, callfuncO_selector(CCSprite::runAction),pAction1),NULL));
|
|
}
|
|
break;
|
|
case 4:
|
|
{
|
|
starEffect->setPosition(ccp(bgImg->getPosition().x+270, bgImg->getPosition().y-100));
|
|
starEffect->setRotation(120);
|
|
starEffect->runAction(CCSequence::create(CCDelayTime::create(2.5),CCCallFuncO::create(starEffect, callfuncO_selector(CCSprite::runAction),pAction1),NULL));
|
|
}
|
|
break;
|
|
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
else if (GameShare_Global::shareGlobal()->gameProperty.totolscore >= GameShare_Global::shareGlobal()->gameProperty.highestscore)
|
|
{
|
|
UIImageView* gradebg = dynamic_cast<UIImageView*>(ul->getWidgetByName("Image_4"));
|
|
iEffectType = 0;
|
|
iAddTypeNum = 0;
|
|
gradebg->setVisible(false);
|
|
histroyTop -> setVisible(false);
|
|
historyPic -> setVisible(false);
|
|
hisroryPicUp -> setVisible(false);
|
|
finishScore -> setVisible(false);
|
|
addSprite->setVisible(false);
|
|
goldSprite->setVisible(false);
|
|
expSprite->setVisible(false);
|
|
bgImg->setVisible(false);
|
|
returnBtn->setTouchEnabled(false);
|
|
returnBtn->setVisible(false);
|
|
againBtn->setTouchEnable(false);
|
|
againBtn->setVisible(false);
|
|
light->setVisible(false);
|
|
addImg->setVisible(false);
|
|
goldImg->setVisible(false);
|
|
expImg->setVisible(false);
|
|
addSpriteBg->setVisible(false);
|
|
goldSpriteBg->setVisible(false);
|
|
expSpriteBg->setVisible(false);
|
|
star1->setVisible(false);
|
|
star2->setVisible(false);
|
|
star3->setVisible(false);
|
|
star4->setVisible(false);
|
|
star5->setVisible(false);
|
|
star6->setVisible(false);
|
|
star7->setVisible(false);
|
|
star8->setVisible(false);
|
|
CCAnimation *animation = CCAnimation::create();
|
|
CCString str;
|
|
for (int i = 1; i < 5; i++)
|
|
{
|
|
str.initWithFormat("./CocoStudioResources/GameOver/yun%d.png",i);
|
|
animation->addSpriteFrameWithFileName(str.getCString());
|
|
}
|
|
animation->setDelayPerUnit(0.2f);
|
|
animation->setLoops(1);
|
|
CCSprite *cloud = CCSprite::create("./CocoStudioResources/GameOver/yun1.png");
|
|
this->addChild(cloud);
|
|
cloud->setPosition(ccp(310,690));
|
|
//cloud->runAction(CCRepeatForever::create(CCAnimate::create(animation)));
|
|
cloud->runAction(CCRepeat::create(CCAnimate::create(animation),1.0f));
|
|
pEffects = CCSprite::create("./CocoStudioResources/GameOver/flock1.png");
|
|
this->addChild(pEffects);
|
|
pEffects2 = CCSprite::create("./CocoStudioResources/GameOver/flock1.png");
|
|
this->addChild(pEffects2);
|
|
pEffects3 = CCSprite::create("./CocoStudioResources/GameOver/flock1.png");
|
|
this->addChild(pEffects3);
|
|
pEffects->setVisible(false);
|
|
pEffects2->setVisible(false);
|
|
pEffects3->setVisible(false);
|
|
CCSprite *Ray = CCSprite::create("./CocoStudioResources/pk/Ray.png");
|
|
Ray->setPosition(ccp(320,700));
|
|
this->addChild(Ray);
|
|
CCRotateBy *rotate = CCRotateBy::create(2, 90);
|
|
Ray -> runAction(CCRepeatForever::create(rotate));
|
|
this->scheduleOnce(schedule_selector(GameLayer_MaxScore::setGradeBack),1.0f);
|
|
}
|
|
else{
|
|
// CCSprite* labelSprite = CCSprite::create("./CocoStudioResources/ResultLastSocreImg.png");
|
|
// labelSprite->setPosition(ccp(labelSprite->getPositionX(), labelSprite->getPositionY()+80));
|
|
// bgImg->addRenderer(labelSprite,10);
|
|
finishScore -> setVisible(true);
|
|
}
|
|
//获得最高分.
|
|
return true;
|
|
}
|
|
void GameLayer_MaxScore::setScoreCallBack()
|
|
{
|
|
UIImageView* bgImg = dynamic_cast<UIImageView*>(ul->getWidgetByName("Image_4"));
|
|
//背后的闪光.
|
|
CCSprite* blink = CCSprite::create("./CocoStudioResources/GameOver/BgLight.png");
|
|
blink->runAction(CCRepeatForever::create(CCSequence::create(CCFadeTo::create(1.0, 100),CCFadeTo::create(1.0, 255),NULL)));
|
|
blink->setPosition(ccp(0, 50));
|
|
bgImg->addRenderer(blink, 0);
|
|
//结果的图片
|
|
CCSprite* resultSprite = NumSprite::getNumSprite(GameShare_Global::shareGlobal()->gameProperty.totolscore, "./numberBox/whiteNumber", 40.0, 0.5);
|
|
bgImg->addRenderer(resultSprite,10);
|
|
resultSprite->ignoreAnchorPointForPosition(false);
|
|
resultSprite->setAnchorPoint(ccp(0.5, 0.5));
|
|
resultSprite->setPosition(ccp(0, 10));
|
|
resultSprite->setScale(0.7);
|
|
resultSprite->runAction(CCSequence::create(CCScaleTo::create(0.0, 3.0),CCScaleTo::create(0.5, 1.0),NULL));
|
|
|
|
//历史最高分的图片
|
|
CCSprite* maxSprite = NumSprite::getNumSprite(GameShare_Global::shareGlobal()->gameProperty.highestscore, "./numberBox/lightBrown", 85, 0.5);
|
|
maxSprite->ignoreAnchorPointForPosition(false);
|
|
maxSprite->setAnchorPoint(ccp(0.5, 0.5));
|
|
maxSprite->setScale(0.2);
|
|
bgImg->addRenderer(maxSprite,10);
|
|
maxSprite->setPosition(ccp(80, -58));
|
|
|
|
|
|
//加入星星
|
|
for (int i=0; i<5; i++) {
|
|
CCSprite* starSprite = CCSprite::create("./CocoStudioResources/ItemStrengthern/EffectStar.png");
|
|
CCSequence *seque = CCSequence::create(CCFadeTo::create(0.2, 150),CCFadeTo::create(0.3, 255),NULL);
|
|
CCActionInterval* ccScale = CCSequence::create(CCScaleTo::create(0.2, 0.5), CCScaleTo::create(0.3, 1.0), NULL);
|
|
CCActionInterval *spawn = CCSpawn::create(seque, ccScale, NULL);
|
|
|
|
starSprite->runAction(CCRepeatForever::create(spawn));
|
|
bgImg->addRenderer(starSprite, 10);
|
|
switch (i) {
|
|
case 0:
|
|
starSprite->setPosition(ccp(40, 120));
|
|
break;
|
|
case 1:
|
|
starSprite->setPosition(ccp(130, 50));
|
|
break;
|
|
case 2:
|
|
starSprite->setPosition(ccp(60, -30));
|
|
break;
|
|
case 3:
|
|
starSprite->setPosition(ccp(-150, 0));
|
|
break;
|
|
case 4:
|
|
starSprite->setPosition(ccp(-70, -50));
|
|
break;
|
|
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
void GameLayer_MaxScore::addSureCallbackFunc(cocos2d::CCObject *target, SEL_CallFunc callfun)
|
|
{
|
|
this->m_pListener = target;
|
|
this->m_pfnSelector = callfun;
|
|
|
|
|
|
}
|
|
void GameLayer_MaxScore::sureBtnCallback(cocos2d::CCObject *pSender)
|
|
{
|
|
if (m_pListener && m_pfnSelector)
|
|
{
|
|
(m_pListener->*m_pfnSelector)();
|
|
}
|
|
}
|
|
void GameLayer_MaxScore::playAgain(CCObject *p) {
|
|
CCScene *scene_GameItem = Scene_GameItem::scene();
|
|
CCDirector::sharedDirector()->replaceScene(CCTransitionFade::create(0.4, scene_GameItem));
|
|
|
|
}
|
|
void GameLayer_MaxScore::getButton(bool bButton)
|
|
{
|
|
UIButton* sureBtn = dynamic_cast<UIButton*>(ulBg->getWidgetByName("Sure"));
|
|
sureBtn->setPressedActionEnabled(true);
|
|
sureBtn->addReleaseEvent(this, coco_releaseselector(GameLayer_MaxScore::sureBtnCallback));
|
|
|
|
|
|
|
|
if (bButton==true||GameShare_Global::shareGlobal()->gameProperty.totolscore >= GameShare_Global::shareGlobal()->gameProperty.historyscore)
|
|
{
|
|
sureBtn->setTouchEnabled(true);
|
|
sureBtn->setVisible(true);
|
|
returnBtn->setTouchEnabled(false);
|
|
returnBtn->setVisible(false);
|
|
againBtn->setTouchEnable(false);
|
|
againBtn->setVisible(false);
|
|
}
|
|
else
|
|
{
|
|
sureBtn->setTouchEnabled(false);
|
|
sureBtn->setVisible(false);
|
|
returnBtn->setTouchEnabled(true);
|
|
returnBtn->setVisible(true);
|
|
againBtn->setTouchEnable(true);
|
|
againBtn->setVisible(true);
|
|
}
|
|
//else
|
|
//{
|
|
// sureBtn->setTouchEnabled(false);
|
|
// sureBtn->setVisible(false);
|
|
// returnBtn->setTouchEnabled(true);
|
|
// returnBtn->setVisible(true);
|
|
// againBtn->setTouchEnable(true);
|
|
// againBtn->setVisible(true);
|
|
//}
|
|
}
|
|
void GameLayer_MaxScore::setGradeBack(float td)
|
|
{
|
|
CCAnimation *animation = CCAnimation::create();
|
|
CCString str;
|
|
for (int i = 1; i < 8; i++)
|
|
{
|
|
str.initWithFormat("./CocoStudioResources/GameOver/gradeBg%d.png",i);
|
|
animation->addSpriteFrameWithFileName(str.getCString());
|
|
}
|
|
animation->setDelayPerUnit(0.1f);
|
|
animation->setLoops(1);
|
|
CCSprite *cloud = CCSprite::create("./CocoStudioResources/GameOver/gradeBg1.png");
|
|
this->addChild(cloud,1);
|
|
cloud->setPosition(ccp(320,710));
|
|
//cloud->runAction(CCRepeatForever::create(CCAnimate::create(animation)));
|
|
cloud->runAction(CCRepeat::create(CCAnimate::create(animation),1.0f));
|
|
this->scheduleOnce(schedule_selector(GameLayer_MaxScore::getGrade),1.0f);
|
|
}
|
|
void GameLayer_MaxScore::getGrade(float td)
|
|
{
|
|
CCAnimation *animation = CCAnimation::create();
|
|
CCString str;
|
|
int iNum=1;
|
|
if(GameShare_Global::shareGlobal()->gameProperty.totolscore>1)
|
|
iNum=2;
|
|
if(GameShare_Global::shareGlobal()->gameProperty.totolscore>10)
|
|
iNum=3;
|
|
if(GameShare_Global::shareGlobal()->gameProperty.totolscore>15)
|
|
iNum=4;
|
|
if(GameShare_Global::shareGlobal()->gameProperty.totolscore>50)
|
|
iNum=5;
|
|
if(GameShare_Global::shareGlobal()->gameProperty.totolscore>120)
|
|
iNum=6;
|
|
if(GameShare_Global::shareGlobal()->gameProperty.totolscore>500)
|
|
iNum=7;
|
|
if(GameShare_Global::shareGlobal()->gameProperty.totolscore>2000)
|
|
iNum=8;
|
|
if(GameShare_Global::shareGlobal()->gameProperty.totolscore>5304)
|
|
iNum=9;
|
|
for (int i = 1; i < iNum; i++)
|
|
{
|
|
str.initWithFormat("./CocoStudioResources/GameOver/grade%d.png",i);
|
|
animation->addSpriteFrameWithFileName(str.getCString());
|
|
}
|
|
animation->setDelayPerUnit(0.08f);
|
|
animation->setLoops(1);
|
|
pFalseGrade = CCSprite::create("./CocoStudioResources/GameOver/grade1.png");
|
|
this->addChild(pFalseGrade,10);
|
|
pFalseGrade->setPosition(ccp(320,725));
|
|
pFalseGrade->runAction(CCRepeat::create(CCAnimate::create(animation),1.0f));
|
|
|
|
this->scheduleOnce(schedule_selector(GameLayer_MaxScore::addGrade),0.7f);
|
|
//历史最高分的图片
|
|
//CCString str;
|
|
//if(GameShare_Global::shareGlobal()->gameProperty.highestscore>=1000)
|
|
//{
|
|
// int i = GameShare_Global::shareGlobal()->gameProperty.highestscore/1000;
|
|
// i = GameShare_Global::shareGlobal()->gameProperty.highestscore - i*1000;
|
|
// str.initWithFormat("%d",i);
|
|
// CCSprite *pDot = CCSprite::create("./CocoStudioResources/GameOver/dian.png");
|
|
// this->addChild(pDot,2);
|
|
// pDot->setPosition(ccp());
|
|
// lvLabel->setStringValue(str.getCString());
|
|
//}
|
|
}
|
|
void GameLayer_MaxScore::addGrade(float td)
|
|
{
|
|
this->removeChild(pFalseGrade);
|
|
//结果的图片
|
|
CCSprite* resultSprite = NumSprite::getNumSprite(GameShare_Global::shareGlobal()->gameProperty.totolscore, "./numberBox/whiteNumber", 40.0, 0.5);
|
|
this->addChild(resultSprite,10);
|
|
resultSprite->ignoreAnchorPointForPosition(false);
|
|
resultSprite->setAnchorPoint(ccp(0.5, 0.5));
|
|
resultSprite->setPosition(ccp(320,725));
|
|
resultSprite->setScale(0.8);
|
|
|
|
CCSprite* maxSprite = NumSprite::getNumSprite(GameShare_Global::shareGlobal()->gameProperty.historyscore, "./numberBox/newGrade", 85, 0.5);
|
|
maxSprite->ignoreAnchorPointForPosition(false);
|
|
maxSprite->setAnchorPoint(ccp(0.5, 0.5));
|
|
maxSprite->setScale(0.2);
|
|
this->addChild(maxSprite,10);
|
|
maxSprite->setPosition(ccp(380,655));
|
|
//resultSprite->runAction(CCSequence::create(CCScaleTo::create(0.0, 3.0),CCScaleTo::create(0.5, 1.0),NULL));
|
|
this->scheduleOnce(schedule_selector(GameLayer_MaxScore::setHighestGradeBack),0.5f);
|
|
}
|
|
void GameLayer_MaxScore::setHighestGradeBack(float td)
|
|
{
|
|
|
|
CCSprite *cloud = CCSprite::create("./CocoStudioResources/GameOver/highNum.png");
|
|
this->addChild(cloud,1);
|
|
cloud->setPosition(ccp(320,850));
|
|
CCActionInterval *easeElasticOut = CCEaseElasticOut::create(CCMoveTo::create(0.15,ccp(320,790)));
|
|
cloud->runAction(easeElasticOut);
|
|
////cloud->runAction(CCRepeatForever::create(CCAnimate::create(animation)));
|
|
////cloud->runAction(CCRepeat::create(CCAnimate::create(animation),1.0f));
|
|
this->scheduleOnce(schedule_selector(GameLayer_MaxScore::setStarMedal),0.5f);
|
|
|
|
}
|
|
void GameLayer_MaxScore::setStarMedal(float td)
|
|
{
|
|
CCAnimation *animation = CCAnimation::create();
|
|
CCString str;
|
|
for (int i = 1; i < 5; i++)
|
|
{
|
|
str.initWithFormat("./CocoStudioResources/GameOver/star%d.png",i);
|
|
animation->addSpriteFrameWithFileName(str.getCString());
|
|
}
|
|
animation->setDelayPerUnit(0.1f);
|
|
animation->setLoops(1);
|
|
CCSprite *cloud = CCSprite::create("./CocoStudioResources/GameOver/star1.png");
|
|
this->addChild(cloud);
|
|
cloud->setPosition(ccp(320,850));
|
|
star1->setVisible(true);
|
|
star2->setVisible(true);
|
|
star3->setVisible(true);
|
|
star4->setVisible(true);
|
|
star5->setVisible(true);
|
|
star6->setVisible(true);
|
|
star7->setVisible(true);
|
|
star8->setVisible(true);
|
|
CCFiniteTimeAction* seq1 = CCSequence::create(CCScaleTo::create(0.5,1.8),CCScaleTo::create(0.5,2.0),NULL);
|
|
CCFiniteTimeAction* seq2 = CCSequence::create(CCScaleTo::create(0.5,0.8),CCScaleTo::create(0.5,1.0),NULL);
|
|
CCFiniteTimeAction* seq3 = CCSequence::create(CCScaleTo::create(0.5,1.6),CCScaleTo::create(0.5,1.8),NULL);
|
|
CCFiniteTimeAction* seq4 = CCSequence::create(CCScaleTo::create(0.5,0.6),CCScaleTo::create(0.5,0.8),NULL);
|
|
CCFiniteTimeAction* seq5 = CCSequence::create(CCScaleTo::create(0.5,0.3),CCScaleTo::create(0.5,0.5),NULL);
|
|
CCActionInterval * repeatForever1 =CCRepeatForever::create((CCActionInterval* )seq2);
|
|
CCActionInterval * repeatForever2 =CCRepeatForever::create((CCActionInterval* )seq1);
|
|
CCActionInterval * repeatForever3 =CCRepeatForever::create((CCActionInterval* )seq1);
|
|
CCActionInterval * repeatForever4 =CCRepeatForever::create((CCActionInterval* )seq1);
|
|
CCActionInterval * repeatForever5 =CCRepeatForever::create((CCActionInterval* )seq2);
|
|
CCActionInterval * repeatForever6 =CCRepeatForever::create((CCActionInterval* )seq3);
|
|
CCActionInterval * repeatForever7 =CCRepeatForever::create((CCActionInterval* )seq4);
|
|
CCActionInterval * repeatForever8 =CCRepeatForever::create((CCActionInterval* )seq5);
|
|
star1->runAction(repeatForever1);
|
|
star2->runAction(repeatForever2);
|
|
star3->runAction(repeatForever3);
|
|
star4->runAction(repeatForever4);
|
|
star5->runAction(repeatForever5);
|
|
star6->runAction(repeatForever6);
|
|
star7->runAction(repeatForever7);
|
|
star8->runAction(repeatForever8);
|
|
//cloud->runAction(CCRepeatForever::create(CCAnimate::create(animation)));
|
|
cloud->runAction(CCRepeat::create(CCAnimate::create(animation),1.0f));
|
|
this->schedule(schedule_selector(GameLayer_MaxScore::setEffects),1.0f);
|
|
this->schedule(schedule_selector(GameLayer_MaxScore::getAnimation),0.3f);
|
|
}
|
|
void GameLayer_MaxScore::setEffects(float td)
|
|
{
|
|
if(iEffectType>1)
|
|
iEffectType=0;
|
|
CCAnimation *animation = CCAnimation::create();
|
|
CCString str;
|
|
for (int i = 1; i < 7; i++)
|
|
{
|
|
str.initWithFormat("./CocoStudioResources/GameOver/flock%d.png",i);
|
|
animation->addSpriteFrameWithFileName(str.getCString());
|
|
}
|
|
animation->setDelayPerUnit(0.1f);
|
|
animation->setLoops(1);
|
|
if(iEffectType==0)
|
|
{
|
|
pEffects->setVisible(true);
|
|
pEffects2->setVisible(true);
|
|
pEffects3->setVisible(true);
|
|
pEffects->setPosition(ccp(100,860));
|
|
pEffects->runAction(CCRepeat::create(CCAnimate::create(animation),1.0f));
|
|
pEffects2->setPosition(ccp(550,860));
|
|
pEffects2->runAction(CCRepeat::create(CCAnimate::create(animation),1.0f));
|
|
pEffects3->setPosition(ccp(360,550));
|
|
pEffects3->runAction(CCRepeat::create(CCAnimate::create(animation),1.0f));
|
|
}
|
|
else
|
|
{
|
|
pEffects->setVisible(true);
|
|
pEffects2->setVisible(true);
|
|
pEffects3->setVisible(true);
|
|
pEffects->setPosition(ccp(200,960));
|
|
pEffects2->setPosition(ccp(400,960));
|
|
pEffects3->setPosition(ccp(320,560));
|
|
pEffects->runAction(CCRepeat::create(CCAnimate::create(animation),1.0f));
|
|
pEffects2->runAction(CCRepeat::create(CCAnimate::create(animation),1.0f));
|
|
pEffects3->runAction(CCRepeat::create(CCAnimate::create(animation),1.0f));
|
|
}
|
|
iEffectType++;
|
|
}
|
|
void GameLayer_MaxScore::getAnimation(float td)
|
|
{
|
|
if(iAddTypeNum==0)
|
|
{
|
|
addImg->setVisible(true);
|
|
addSprite->setVisible(true);
|
|
addSpriteBg->setVisible(true);
|
|
}
|
|
else if(iAddTypeNum==1)
|
|
{
|
|
goldImg->setVisible(true);
|
|
goldSprite->setVisible(true);
|
|
goldSpriteBg->setVisible(true);
|
|
}
|
|
else if(iAddTypeNum==2)
|
|
{
|
|
expImg->setVisible(true);
|
|
expSprite->setVisible(true);
|
|
expSpriteBg->setVisible(true);
|
|
}
|
|
else if(iAddTypeNum==3)
|
|
{
|
|
returnBtn->setTouchEnabled(true);
|
|
returnBtn->setVisible(true);
|
|
againBtn->setTouchEnable(true);
|
|
againBtn->setVisible(true);
|
|
}
|
|
else
|
|
this->unschedule(schedule_selector(GameLayer_MaxScore::getAnimation));
|
|
|
|
iAddTypeNum++;
|
|
}
|