// // AniChangingSprite.cpp // SteveMaggieCpp // // Created by Katarzyna Kalinowska-Górska on 17.05.2017. // // #include #include "AniChangingSprite.h" AniChangingSprite* AniChangingSprite::createWithSpritePaths(std::string firstSpritePath, std::string secondSpritePath) { AniChangingSprite * sprite = new (std::nothrow) AniChangingSprite(); if(sprite && sprite->initWithSpritePaths(firstSpritePath, secondSpritePath)) { sprite->autorelease(); return sprite; } CC_SAFE_DELETE(sprite); return nullptr; } bool AniChangingSprite::initWithSpritePaths(std::string firstSpritePath, std::string secondSpritePath) { if(!AniPlainNode::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 AniChangingSprite::prepareSize(const rapidjson::Value& jsonValue, float& width, float& height) { width = this->_firstSprite->getBoundingBox().size.width; height = this->_firstSprite->getBoundingBox().size.height; } void AniChangingSprite::onEnter() { AniPlainNode::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 AniChangingSprite::switchSprites() { if(this->_secondSprite->getOpacity() == 0){ this->_firstSprite->setOpacity(0); this->_secondSprite->setOpacity(255); } else { this->_firstSprite->setOpacity(255); this->_secondSprite->setOpacity(0); } }