void EditorScene::openFile(const std::string& filePath) { if ("" == filePath || " " == filePath) { this->showAlter("Please input file name"); return; } string data = string(); bool isExist = false; if (FileUtils::getInstance()->isFileExist(filePath)) { data = FileUtils::getInstance()->getStringFromFile(filePath); //log("FILEPATH: %s\n", FileUtils::getInstance()->fullPathForFilename(filePath).c_str()); this->setFileName(FileUtils::getInstance()->fullPathForFilename(filePath)); isExist = true; } else { auto doc = FileUtils::getInstance()->getWritablePath(); doc.append("D_Editor/").append(filePath); //log("FILEPATH: %s\n", doc.c_str()); if (access(doc.c_str(), F_OK) == 0) { this->setFileName(doc); unsigned char* buffer = nullptr; ssize_t size = 0; size_t readsize; FILE *fp = fopen(doc.c_str(), "rt"); if (!fp) { isExist = false; } fseek(fp,0,SEEK_END); size = ftell(fp); fseek(fp,0,SEEK_SET); buffer = (unsigned char*)malloc(sizeof(unsigned char) * (size + 1)); buffer[size] = '\0'; readsize = fread(buffer, sizeof(unsigned char), size, fp); fclose(fp); if (nullptr == buffer || 0 == readsize) { std::string msg = "Get data from file("; msg.append(filePath).append(") failed!"); this->showAlter(msg); } else { data = string((const char*)buffer); } isExist = true; } } //log("Load Data : %s", data.c_str()); if (isExist) { this->setFileData(data); //封装成Mission auto missionData = string(); missionData.append("{"); missionData.append("\"pages\":["); missionData.append(data); missionData.append("]}"); rapidjson::Document doc; doc.Parse<0>(missionData.c_str()); if (doc.HasParseError()) { CCASSERT(false, "json parse error"); } //clear last pages for (int i = 0; i < m_editorPages->count(); ++ i) { auto page = dynamic_cast<EditorPage*>(m_editorPages->getObjectAtIndex(i)); page->removeFromParentAndCleanup(true); } m_editorPages->removeAllObjects(); auto mission = Mission::createWithDataStr(missionData); this->setMission(mission); for (int i = 0; i < m_mission->getMissionPageCount(); ++ i) { auto missionPage = mission->getMissionPage(i); auto page = EditorPage::create(); page->setEditorListener(this); page->loadMissionPage(missionPage); m_content->addChild(page); m_editorPages->addObject(page); } this->showPage(0); this->hideMenu(EditorListener::MenuState::FIRST); } else { this->showAlter("FILE IS NOT EXIST!"); } }
void ZhuangBeiListLayer::close(CCObject *sender) { removeFromParentAndCleanup(true); }
void UILayer::dispose() { removeFromParentAndCleanup(true); }
bool Level1::onContactBegin(cocos2d::PhysicsContact &contact) { auto nodeA = contact.getShapeA()->getBody()->getNode(); auto nodeB = contact.getShapeB()->getBody()->getNode(); if (nodeA && nodeB) { //bullet and boss collision //if bullet if (nodeA->getTag() == 10) { //if boss if (nodeB->getTag() == 30) { CocosDenshion::SimpleAudioEngine::sharedEngine()->playEffect("bossHit.wav"); nodeA->removeFromParentAndCleanup(true); boss->loseLives(); if (boss->getLives() <= 0){ boss->removehealthBar(); //start level 2 switch statement level = 'B'; //removes boss1 nodeB->removeFromParentAndCleanup(true); //re-initilize level init(); player->setLives(); } } //if boss1bullet else if (nodeB->getTag() == 40) { nodeA->removeFromParentAndCleanup(true); nodeB->removeFromParentAndCleanup(true); CocosDenshion::SimpleAudioEngine::sharedEngine()->playEffect("metalBang.wav"); } //if boss2 else if (nodeB->getTag() == 50) { CocosDenshion::SimpleAudioEngine::sharedEngine()->playEffect("bossHit.wav"); nodeA->removeFromParentAndCleanup(true); boss2->loseLives(); if (boss2->getLives() <= 0){ activateGameCompleteScene(this); } } //if boss1bullet2 else if (nodeB->getTag() == 60) { nodeA->removeFromParentAndCleanup(true); nodeB->removeFromParentAndCleanup(true); CocosDenshion::SimpleAudioEngine::sharedEngine()->playEffect("metalBang.wav"); } //if boss1bullet3 else if (nodeB->getTag() == 70) { nodeA->removeFromParentAndCleanup(true); nodeB->removeFromParentAndCleanup(true); CocosDenshion::SimpleAudioEngine::sharedEngine()->playEffect("metalBang.wav"); } //if boss2bullet2 else if (nodeB->getTag() == 80) { nodeA->removeFromParentAndCleanup(true); nodeB->removeFromParentAndCleanup(true); CocosDenshion::SimpleAudioEngine::sharedEngine()->playEffect("metalBang.wav"); } //if boss2bullet3 else if (nodeB->getTag() == 90) { nodeA->removeFromParentAndCleanup(true); nodeB->removeFromParentAndCleanup(true); CocosDenshion::SimpleAudioEngine::sharedEngine()->playEffect("metalBang.wav"); } //if boss2bullet3 else if (nodeB->getTag() == 100) { nodeA->removeFromParentAndCleanup(true); nodeB->removeFromParentAndCleanup(true); CocosDenshion::SimpleAudioEngine::sharedEngine()->playEffect("metalBang.wav"); } } //bullet and boss collision //if boss else if (nodeA->getTag() == 30) { // if bullet if (nodeB->getTag() == 10) { CocosDenshion::SimpleAudioEngine::sharedEngine()->playEffect("bossHit.wav"); nodeB->removeFromParentAndCleanup(true); boss->loseLives(); if (boss->getLives() <= 0){ boss->removehealthBar(); level = 'B'; nodeA->removeFromParentAndCleanup(true); init(); player->setLives(); } } } //bullet and boss collision //if boss2 else if (nodeA->getTag() == 50) { //if player bullet if (nodeB->getTag() == 10) { CocosDenshion::SimpleAudioEngine::sharedEngine()->playEffect("bossHit.wav"); nodeB->removeFromParentAndCleanup(true); boss2->loseLives(); if (boss2->getLives() <= 0){ activateGameCompleteScene(this); player->setLives(); } } } //player and bossbullet collision //if boss1bullet1 else if (nodeA->getTag() == 40) { //if player if (nodeB->getTag() == 20) { CocosDenshion::SimpleAudioEngine::sharedEngine()->playEffect("playerHit.wav"); nodeA->removeFromParentAndCleanup(true); player->loseLives(); if (player->getLives() <= 0){ activateGameOverScene(this); } } //if bullet else if (nodeB->getTag() == 10) { nodeB->removeFromParentAndCleanup(true); nodeA->removeFromParentAndCleanup(true); CocosDenshion::SimpleAudioEngine::sharedEngine()->playEffect("metalBang.wav"); } } //player and bossbullet2 collision //if boss1bullet2 else if (nodeA->getTag() == 60) { //if player if (nodeB->getTag() == 20) { CocosDenshion::SimpleAudioEngine::sharedEngine()->playEffect("playerHit.wav"); nodeA->removeFromParentAndCleanup(true); player->loseLives(); if (player->getLives() <= 0){ activateGameOverScene(this); } } //if bullet else if (nodeB->getTag() == 10) { nodeB->removeFromParentAndCleanup(true); nodeA->removeFromParentAndCleanup(true); CocosDenshion::SimpleAudioEngine::sharedEngine()->playEffect("metalBang.wav"); } } //player and boss1bullet collision //if boss1bullet3 else if (nodeA->getTag() == 70) { //if player if (nodeB->getTag() == 20) { CocosDenshion::SimpleAudioEngine::sharedEngine()->playEffect("playerHit.wav"); nodeA->removeFromParentAndCleanup(true); player->loseLives(); if (player->getLives() <= 0){ activateGameOverScene(this); } } //if bullet else if (nodeB->getTag() == 10) { nodeB->removeFromParentAndCleanup(true); nodeA->removeFromParentAndCleanup(true); CocosDenshion::SimpleAudioEngine::sharedEngine()->playEffect("metalBang.wav"); } } //player and bossbullet collision //if boss2bullet1 else if (nodeA->getTag() == 80) { //if player if (nodeB->getTag() == 20) { CocosDenshion::SimpleAudioEngine::sharedEngine()->playEffect("playerHit.wav"); nodeA->removeFromParentAndCleanup(true); player->loseLives(); if (player->getLives() <= 0){ activateGameOverScene(this); } } //if bullet else if (nodeB->getTag() == 10) { nodeB->removeFromParentAndCleanup(true); nodeA->removeFromParentAndCleanup(true); CocosDenshion::SimpleAudioEngine::sharedEngine()->playEffect("metalBang.wav"); } } //player and bossbullet collision //if boss2bullet2 else if (nodeA->getTag() == 90) { //if player if (nodeB->getTag() == 20) { CocosDenshion::SimpleAudioEngine::sharedEngine()->playEffect("playerHit.wav"); nodeA->removeFromParentAndCleanup(true); player->loseLives(); if (player->getLives() <= 0){ activateGameOverScene(this); } } //if bullet else if (nodeB->getTag() == 10) { nodeB->removeFromParentAndCleanup(true); nodeA->removeFromParentAndCleanup(true); CocosDenshion::SimpleAudioEngine::sharedEngine()->playEffect("metalBang.wav"); } } //player and bossbullet collision //if boss2bullet3 else if (nodeA->getTag() == 100) { //if player if (nodeB->getTag() == 20) { CocosDenshion::SimpleAudioEngine::sharedEngine()->playEffect("playerHit.wav"); nodeA->removeFromParentAndCleanup(true); player->loseLives(); if (player->getLives() <= 0){ activateGameOverScene(this); } } //if bullet else if (nodeB->getTag() == 10) { nodeB->removeFromParentAndCleanup(true); nodeA->removeFromParentAndCleanup(true); CocosDenshion::SimpleAudioEngine::sharedEngine()->playEffect("metalBang.wav"); } } //player and bossbullet collision //if player else if (nodeA->getTag() == 20) { //if bossbullet if (nodeB->getTag() == 40) { CocosDenshion::SimpleAudioEngine::sharedEngine()->playEffect("playerHit.wav"); nodeB->removeFromParentAndCleanup(true); player->loseLives(); if (player->getLives() <= 0){ //removes bossbullet activateGameOverScene(this); } } //if bossbullet2 else if (nodeB->getTag() == 60) { CocosDenshion::SimpleAudioEngine::sharedEngine()->playEffect("playerHit.wav"); nodeB->removeFromParentAndCleanup(true); player->loseLives(); if (player->getLives() <= 0){ activateGameOverScene(this); } } //if bossbullet3 else if (nodeB->getTag() == 70) { CocosDenshion::SimpleAudioEngine::sharedEngine()->playEffect("playerHit.wav"); nodeB->removeFromParentAndCleanup(true); player->loseLives(); if (player->getLives() <= 0){ activateGameOverScene(this); } } //if boss2bullet1 else if (nodeB->getTag() == 80) { CocosDenshion::SimpleAudioEngine::sharedEngine()->playEffect("playerHit.wav"); nodeB->removeFromParentAndCleanup(true); player->loseLives(); if (player->getLives() <= 0){ activateGameOverScene(this); } } //if boss2bullet2 else if (nodeB->getTag() == 90) { CocosDenshion::SimpleAudioEngine::sharedEngine()->playEffect("playerHit.wav"); nodeB->removeFromParentAndCleanup(true); player->loseLives(); if (player->getLives() <= 0){ activateGameOverScene(this); } } //if boss2bullet3 else if (nodeB->getTag() == 100) { CocosDenshion::SimpleAudioEngine::sharedEngine()->playEffect("playerHit.wav"); nodeB->removeFromParentAndCleanup(true); player->loseLives(); if (player->getLives() <= 0){ activateGameOverScene(this); } } } } return true; }
void RowObject::removeFromGame() { unscheduleUpdate(); removeFromParentAndCleanup(true); }
//****************************************************************************** // ccTouchBegan //****************************************************************************** bool CommDlg::ccTouchBegan(CCTouch* touch, CCEvent* event) { CCPoint touchLocation = touch->locationInView( touch->view() ); touchLocation = CCDirector::sharedDirector()->convertToGL( touchLocation ); CCPoint pos = convertToNodeSpace( touchLocation ); CCNode* nodeOk = getChildByTag(kCommBtnTagOk); CCNode* nodeCancel = getChildByTag(kCommBtnTagCancel); CCPoint pt; CCSize sz; bool bRet = false; if(nodeOk){ pt = nodeOk->getPosition(); sz = nodeOk->getContentSize(); bRet = CCRect::CCRectContainsPoint(CCRectMake(pt.x - sz.width * 0.5, pt.y - sz.height * 0.5, sz.width, sz.height), pos); if(bRet){ m_ret.bOk = true; const char* errMsg = CGameData::Inst()->getErrMsg(); if(errMsg != NULL){ string eMsg = errMsg; if (eMsg.find("武将不存在")!=string::npos) MainScene::Inst()->reLogin(); else (m_pListener->*m_pfnSelector)(&m_ret); }else (m_pListener->*m_pfnSelector)(&m_ret); } } if((!bRet) && (nodeCancel)){ pt = nodeCancel->getPosition(); sz = nodeCancel->getContentSize(); bool bRet = CCRect::CCRectContainsPoint(CCRectMake(pt.x - sz.width * 0.5, pt.y - sz.height * 0.5, sz.width, sz.height), pos); if(bRet){ if (m_iRc == kReloginRc) { MainScene::Inst()->forceExitFight(); SaveData::Inst()->destorySavedData(); SaveData::Inst()->destorySavedFile(); OrgSaveData::Inst()->destorySavedData(); OrgSaveData::Inst()->destorySavedFile(); MainScene::Inst()->reLogin(); if (m_pParent) { removeFromParentAndCleanup(true); } } else{ m_ret.bOk = false; (m_pListener->*m_pfnSelector)(&m_ret); } } } return true; }
void QiangHuaLayer::close(CCObject *sender) { removeFromParentAndCleanup(true); }
Scene* Chapter2Level1::createScene() { // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // some upfront items that we need // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Size visibleSize = Director::getInstance()->getVisibleSize(); Vec2 origin = Director::getInstance()->getVisibleOrigin(); Size playingSize = Size(visibleSize.width, visibleSize.height - (visibleSize.height/8)); // actual playing size to work with // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // create a scene // 'scene' is an autorelease object // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ auto scene = Scene::create(); // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // create a node to hold all of the labels // create the player and score labels // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ int paddingX = 20; int paddingY = 20; auto labelNode = Node::create(); auto player1 = Label::createWithTTF("Player 1", "fonts/Marker Felt.ttf", 32); auto player2 = Label::createWithTTF("Player 2", "fonts/Marker Felt.ttf", 32); auto player1Score = Label::createWithTTF("00000", "fonts/Marker Felt.ttf", 32); auto player2Score = Label::createWithTTF("00000", "fonts/Marker Felt.ttf", 32); labelNode->addChild(player1, -2); labelNode->addChild(player1Score, -1); labelNode->addChild(player2, 1); labelNode->addChild(player2Score, 2); player1->setPosition(Vec2(0 + player1->getContentSize().width / 2 + paddingX, visibleSize.height - player1->getContentSize().height / 2 - paddingY)); player1Score->setPosition(Vec2(0 + player1->getPositionX() + player1->getContentSize().width + paddingX, visibleSize.height - player1->getContentSize().height / 2 - paddingY)); player2Score->setPosition(Vec2(visibleSize.width - player2Score->getContentSize().width / 2 - paddingX, visibleSize.height - player2Score->getContentSize().height / 2 - paddingY)); player2->setPosition(Vec2(player2Score->getPositionX() - player2Score->getContentSize().width - paddingX, visibleSize.height - player2Score->getContentSize().height / 2 - paddingY)); scene->addChild(labelNode, 0); // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // create a node to hold non-sprites. // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ auto nodeItems = Node::create(); nodeItems->setName("nodeItems"); // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // create a path/walkway // depending upon how large the screen is we need to decide how many blocks to lay down. // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ auto testSprite = Sprite::create("ZigzagForest_Square.png"); int howMany = std::ceil(visibleSize.width / testSprite->getContentSize().width); int sX = 0; // act as a counter for setPosition x coordinate. int sY = 0; // act as a counter for setPosition y coordinate. playingSize = Size(visibleSize.width, visibleSize.height - testSprite->getContentSize().height); for (int i=0; i < howMany; i++) { auto sprite = Sprite::create("ZigzagForest_Square.png"); sprite->setAnchorPoint(Vec2(0,0)); sprite->setPosition(sX,sY); sX += sprite->getContentSize().width; nodeItems->addChild(sprite, -1); } testSprite = NULL; // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // create a few blocks as obstables // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ testSprite = Sprite::create("ZigzagGrass_Mud_Round.png"); // left side blocks sX = visibleSize.width/4 - testSprite->getContentSize().width; sY = playingSize.height/2 - testSprite->getContentSize().height * 2; for (int i=0; i < 3; i++) { auto sprite = Sprite::create("ZigzagGrass_Mud_Round.png"); sprite->setAnchorPoint(Vec2(0,0)); sprite->setPosition(sX,sY); sX += sprite->getContentSize().width; if (i == 1) { sprite->setName("middleBlock1"); } nodeItems->addChild(sprite, 1); } // right side blocks sX = (visibleSize.width/2 + visibleSize.width/4) - testSprite->getContentSize().width; sY = playingSize.height/2 - testSprite->getContentSize().height * 2; for (int i=0; i < 3; i++) { auto sprite = Sprite::create("ZigzagGrass_Mud_Round.png"); sprite->setAnchorPoint(Vec2(0,0)); sprite->setPosition(sX,sY); sX += sprite->getContentSize().width; if (i == 1) { sprite->setName("middleBlock2"); } scene->addChild(sprite, 1); } // center blocks sX = visibleSize.width/2 - testSprite->getContentSize().width; sY = (playingSize.height/2 + playingSize.height/4) - testSprite->getContentSize().height * 2; for (int i=0; i < 3; i++) { auto sprite = Sprite::create("ZigzagGrass_Mud_Round.png"); sprite->setAnchorPoint(Vec2(0,0)); sprite->setPosition(sX,sY); sX += sprite->getContentSize().width; nodeItems->addChild(sprite, 1); } testSprite = NULL; scene->addChild(nodeItems, 1); // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // create a node to hold sprites // create a sprite // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ auto spriteNode = Node::create(); spriteNode->setName("spriteNode"); auto sprite1 = Sprite::create("Blue_Front1.png"); sprite1->setAnchorPoint(Vec2(0,0)); sprite1->setPosition(100, (visibleSize.height - playingSize.height)); sprite1->setName("mainSprite"); spriteNode->addChild(sprite1, 1); scene->addChild(spriteNode, 1); //sprite1->scheduleOnce([&](float dt) { // // the local variable "sprite1" will go out of scope, so I have to get it from "this" // auto anode = Director::getInstance()->getRunningScene()->getChildByName("spriteNode"); // auto bnode = anode->getChildByName("mainSprite"); // // //auto moveBy = MoveBy::create(2, Point(400,0)); // // //bnode->runAction(moveBy); //}, 5, "udpate_key"); // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // create a node to hold menu // create a menu // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ auto menuNode = Node::create(); menuNode->setName("menuNode"); auto menuItem1 = MenuItemFont::create("Demo Parent/Child"); menuItem1->setFontNameObj("fonts/Marker Felt.ttf"); menuItem1->setFontSizeObj(32); menuItem1->setCallback([&](cocos2d::Ref *sender) { auto anode = Director::getInstance()->getRunningScene()->getChildByName("spriteNode"); auto bnode = anode->getChildByName("mainSprite"); auto cnode = Director::getInstance()->getRunningScene()->getChildByName("nodeItems"); auto dnode = cnode->getChildByName("middleBlock1"); // add a few more sprites auto sprite1 = Sprite::create("LightBlue_Front1.png"); sprite1->setAnchorPoint(Vec2(0,0)); sprite1->setName("childSprite1"); bnode->addChild(sprite1, 1); sprite1->setPosition(dnode->getPositionX(), dnode->getPositionY()); auto sprite2 = Sprite::create("White_Front1.png"); sprite2->setAnchorPoint(Vec2(0,0)); sprite2->setName("childSprite2"); bnode->addChild(sprite2, 1); sprite2->setPosition(dnode->getPositionX() - dnode->getContentSize().width * 3, dnode->getPositionY()); // hide the menu option auto ynode = Director::getInstance()->getRunningScene()->getChildByName("menuNode"); auto znode = ynode->getChildByName("menu"); znode->removeFromParentAndCleanup(true); // schedule an action after 3 seconds bnode->scheduleOnce([&](float dt) { auto anode = Director::getInstance()->getRunningScene()->getChildByName("spriteNode"); auto bnode = anode->getChildByName("mainSprite"); bnode->setRotation(40.0f); auto delay = DelayTime::create(4.0f); bnode->runAction(delay); bnode->setScale(2.0f); // You could also use an Action and Sequence combination to do this. //auto rotateBy = RotateBy::create(2, 40.0f); //auto scaleBy = ScaleTo::create(2, 2.0f); //auto seq = Sequence::create(rotateBy, scaleBy, NULL); //bnode->runAction(seq); }, 3, "udpate_key"); }); auto menu = Menu::create(menuItem1, NULL); menu->setName("menu"); menuNode->addChild(menu, 1); menu->setPosition(visibleSize.width / 2, visibleSize.height - menuItem1->getContentSize().height * 2); scene->addChild(menuNode, 2); // return the scene return scene; }
void Bullet::hide(){ stopAnim(); removeFromParentAndCleanup(false); }
void StrayBulletLayer::removeWhenTimeout() { removeFromParentAndCleanup(true); }
void ScoreLayer::deleteProps(Ref *){ int i = nowTools.size(); auto sp = nowTools.at(i-1); sp->removeFromParentAndCleanup(true); nowTools.pop_back(); }
void Label::alignText() { if (_fontAtlas == nullptr || _currentUTF16String.empty()) { setContentSize(Size::ZERO); return; } _fontAtlas->prepareLetterDefinitions(_currentUTF16String); auto& textures = _fontAtlas->getTextures(); if (textures.size() > _batchNodes.size()) { for (auto index = _batchNodes.size(); index < textures.size(); ++index) { auto batchNode = SpriteBatchNode::createWithTexture(textures.at(index)); batchNode->setAnchorPoint(Vec2::ANCHOR_TOP_LEFT); batchNode->setPosition(Vec2::ZERO); Node::addChild(batchNode,0,Node::INVALID_TAG); _batchNodes.push_back(batchNode); } } LabelTextFormatter::createStringSprites(this); if(_maxLineWidth > 0 && _contentSize.width > _maxLineWidth && LabelTextFormatter::multilineText(this) ) LabelTextFormatter::createStringSprites(this); if(_labelWidth > 0 || (_currNumLines > 1 && _hAlignment != TextHAlignment::LEFT)) LabelTextFormatter::alignText(this); if (!_children.empty()) { int strLen = static_cast<int>(_currentUTF16String.length()); Rect uvRect; Sprite* letterSprite; for (auto index = 0; index < _children.size();) { auto child = _children.at(index); int tag = child->getTag(); if (tag >= strLen) { child->removeFromParentAndCleanup(true); } else if (tag >= 0) { letterSprite = dynamic_cast<Sprite*>(child); if (letterSprite) { auto& letterDef = _lettersInfo[tag].def; uvRect.size.height = letterDef.height; uvRect.size.width = letterDef.width; uvRect.origin.x = letterDef.U; uvRect.origin.y = letterDef.V; letterSprite->setBatchNode(_batchNodes[letterDef.textureID]); letterSprite->setTextureRect(uvRect, false, uvRect.size); letterSprite->setPosition(_lettersInfo[tag].position.x + letterDef.width/2, _lettersInfo[tag].position.y - letterDef.height/2); } ++index; } else { ++index; } } } for (const auto& batchNode : _batchNodes) { batchNode->getTextureAtlas()->removeAllQuads(); } updateQuads(); updateColor(); }
void SplitBomb::hide(){ stopAnim(); removeFromParentAndCleanup(false); }
void PauseLayer::destroy() { removeFromParentAndCleanup(true); }