// // AniParentScene.cpp // SteveMaggieCpp // // Created by Katarzyna Kalinowska-Górska on 16.05.2017. // // #include "AniEndScene.h" #include "AniGameConfigParser.h" #include "AniPlainLabel.h" #include "AniSimpleButton.h" AniEndScene* AniEndScene::create(std::string layoutFilePath, int score) { AniEndScene* scene = new (std::nothrow) AniEndScene(); if(scene && scene->init(layoutFilePath, score)) { scene->autorelease(); return scene; } CC_SAFE_DELETE(scene); return nullptr; } bool AniEndScene::init(std::string layoutFilePath, int score){ if(!AniParentScene::initWithConfigurationFiles(layoutFilePath)){ return false; } m_score = score; #if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) addBackButtonListener(); #endif return true; } void AniEndScene::onEnter(){ AniParentScene::onEnter(); loadLayout(true); //TODO WHY?!?!?! the only difference to wee don label is that it's in a subnode... // dynamic_cast(_objects["scoreLabel"])->setString(std::to_string(m_score)); auto basket = _objects["basket"]; auto children = basket->getChildren(); for(int i =0; i < children.size(); ++i){ auto l = dynamic_cast(children.at(i)); if(l){ l->setString(std::to_string(m_score)); } } } void AniEndScene::onEnterTransitionDidFinish(){ AniParentScene::onEnterTransitionDidFinish(); auto basket = _objects["basket"]; auto originalScale = basket->getScale(); auto scaleBy = 2.f; basket->runAction(cocos2d::Sequence::create(cocos2d::EaseBounceOut::create(cocos2d::ScaleBy::create(0.6f, scaleBy)), cocos2d::Spawn::create( cocos2d::RotateBy::create(0.3f, 360), cocos2d::ScaleTo::create(0.3f, originalScale), nullptr),nullptr)); } bool AniEndScene::touchHandlerForWidget(std::string objectName, cocos2d::ui::Widget::TouchEventType touchEventType) { /*if(objectName == "settingsButton" && touchEventType == cocos2d::ui::Widget::TouchEventType::ENDED){ if(!gameState->settingsMenuShown){ showSettingsMenu(); } else { if(settingsMenu->isShowingParentalGate()){ settingsMenu->hideParentalGate(); } else { settingsMenu->hideParentalGate(); // in case showing parental gate is in progress... hideSettingsMenu(); replayGame(); } } } else*/ if(objectName == "replayButton" && touchEventType == cocos2d::ui::Widget::TouchEventType::ENDED){ auto button = dynamic_cast(_objects["replayButton"]); button->setEnabled(false); replayGame(); return true; } return false; } void AniEndScene::replayGame(){ cocos2d::Director::getInstance()->replaceScene(AniGameStaticCreator.createGameScene()); }