// // AniContainerSprite.cpp // SteveMaggieCpp // // Created by Katarzyna Kalinowska-Górska on 17.05.2017. // // #include #include "AniContainerSprite.h" AniContainerSprite* AniContainerSprite::createWithAniContainerSpritePath(std::string AniContainerSpritePath) { AniContainerSprite * sprite = new (std::nothrow) AniContainerSprite(); if(sprite && sprite->initWithAniContainerSpritePath(AniContainerSpritePath)) { sprite->autorelease(); return sprite; } CC_SAFE_DELETE(sprite); return nullptr; } bool AniContainerSprite::initWithAniContainerSpritePath(std::string AniContainerSpritePath) { if(!AniPlainNode::init()){ return false; } this->_AniContainerSpritePath = AniContainerSpritePath; this->_AniContainerSprite = cocos2d::Sprite::create(this->_AniContainerSpritePath); this->addChild(this->_AniContainerSprite); this->setContentSize(_AniContainerSprite->getBoundingBox().size); _AniContainerSprite->setPosition(cocos2d::Point(_AniContainerSprite->getBoundingBox().size.width/2, _AniContainerSprite->getBoundingBox().size.height/2)); return true; } void AniContainerSprite::prepareSize(const rapidjson::Value& jsonValue, float& width, float& height) { width = this->_AniContainerSprite->getBoundingBox().size.width; height = this->_AniContainerSprite->getBoundingBox().size.height; } //void AniContainerSprite::onEnter() //{ // AniPlainNode::onEnter(); //} void AniContainerSprite::addContentNode(cocos2d::Node* contentNode) { if(_contentNode != nullptr){ _contentNode->removeFromParent(); } _contentNode = contentNode; if(_contentNode != nullptr){ _contentNode->retain(); _contentNode->removeFromParent(); addChild(_contentNode); _contentNode->release(); //TODO absolutely get rid of the magic numbers!!!! 0.8, 2/3 _contentNode->setScale(MIN(_AniContainerSprite->getBoundingBox().size.width/_contentNode->getBoundingBox().size.width, _AniContainerSprite->getBoundingBox().size.height/_contentNode->getBoundingBox().size.height)*0.8f); _contentNode->setPosition(cocos2d::Point(_AniContainerSprite->getBoundingBox().size.width/2, _AniContainerSprite->getBoundingBox().size.height*2/3)); reorderChild(_contentNode, 0); reorderChild(_AniContainerSprite, 1); } }