// // ToyContainerSprite.cpp // SteveMaggieCpp // // Created by Katarzyna Kalinowska-Górska on 17.05.2017. // // #include #include "ToyContainerSprite.h" ToyContainerSprite* ToyContainerSprite::createWithToyContainerSpritePath(std::string containerSpritePath) { ToyContainerSprite * sprite = new (std::nothrow) ToyContainerSprite(); if(sprite && sprite->initWithToyContainerSpritePath(containerSpritePath)) { sprite->autorelease(); return sprite; } CC_SAFE_DELETE(sprite); return nullptr; } bool ToyContainerSprite::initWithToyContainerSpritePath(std::string containerSpritePath) { if(!ToyPlainNode::init()){ return false; } this->_containerSpritePath = containerSpritePath; this->_containerSprite = cocos2d::Sprite::create(this->_containerSpritePath); this->addChild(this->_containerSprite); this->setContentSize(_containerSprite->getBoundingBox().size); _containerSprite->setPosition(cocos2d::Point(_containerSprite->getBoundingBox().size.width/2, _containerSprite->getBoundingBox().size.height/2)); return true; } void ToyContainerSprite::prepareSize(const rapidjson::Value& jsonValue, float& width, float& height) { width = this->_containerSprite->getBoundingBox().size.width; height = this->_containerSprite->getBoundingBox().size.height; } //void ToyContainerSprite::onEnter() //{ // ToyPlainNode::onEnter(); //} void ToyContainerSprite::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(_containerSprite->getBoundingBox().size.width/_contentNode->getBoundingBox().size.width, _containerSprite->getBoundingBox().size.height/_contentNode->getBoundingBox().size.height)*0.8f); _contentNode->setPosition(cocos2d::Point(_containerSprite->getBoundingBox().size.width/2, _containerSprite->getBoundingBox().size.height*2/3)); reorderChild(_contentNode, 0); reorderChild(_containerSprite, 1); } }