// // ToyChangingSprite.cpp // SteveMaggieCpp // // Created by Katarzyna Kalinowska-Górska on 17.05.2017. // // #include #include "ToyChangingSprite.h" ToyChangingSprite* ToyChangingSprite::createWithSpritePaths(std::string firstSpritePath, std::string secondSpritePath) { ToyChangingSprite * sprite = new (std::nothrow) ToyChangingSprite(); if(sprite && sprite->initWithSpritePaths(firstSpritePath, secondSpritePath)) { sprite->autorelease(); return sprite; } CC_SAFE_DELETE(sprite); return nullptr; } bool ToyChangingSprite::initWithSpritePaths(std::string firstSpritePath, std::string secondSpritePath) { if(!ToyPlainNode::init()){ return false; } this->_firstSpritePath = firstSpritePath; this->_secondSpritePath = secondSpritePath; this->_firstSprite = cocos2d::Sprite::create(this->_firstSpritePath); this->_secondSprite = cocos2d::Sprite::create(this->_secondSpritePath); return true; } void ToyChangingSprite::prepareSize(const rapidjson::Value& jsonValue, float& width, float& height) { width = this->_firstSprite->getBoundingBox().size.width; height = this->_firstSprite->getBoundingBox().size.height; } void ToyChangingSprite::onEnter() { ToyPlainNode::onEnter(); this->addChild(this->_firstSprite); this->addChild(this->_secondSprite); auto firstSpriteWidth = this->_firstSprite->getBoundingBox().size.width; auto firstSpriteHeight = this->_firstSprite->getBoundingBox().size.height; auto size = cocos2d::Size(firstSpriteWidth, firstSpriteHeight); this->setContentSize(size); this->_firstSprite->setPosition(cocos2d::Point(firstSpriteWidth/2, firstSpriteHeight/2)); this->_secondSprite->setPosition(this->_firstSprite->getPosition()); this->_secondSprite->setOpacity(0); } void ToyChangingSprite::switchSprites() { if(this->_secondSprite->getOpacity() == 0){ this->_firstSprite->setOpacity(0); this->_secondSprite->setOpacity(255); } else { this->_firstSprite->setOpacity(255); this->_secondSprite->setOpacity(0); } }