Exemplo n.º 1
0
Node* CSBHelper::createNode(const std::string& csbFile) {
    auto deviceSize = Director::getInstance()->getVisibleSize();
    auto origin = Director::getInstance()->getVisibleOrigin();

    auto _rootNode = CSLoader::createNode(csbFile);
    auto sceneSize = _rootNode->getContentSize();
    
    
    _rootNode->setScale( (deviceSize.width/sceneSize.width),
                        (deviceSize.height/sceneSize.height));

    fixSpriteContentScale(_rootNode);
    
    _rootNode->setPosition(origin);
    return _rootNode;
}
Exemplo n.º 2
0
START_GAME_NS

// PATCH - sprite from csb file use content scale factor
void fixSpriteContentScale(Node* parentNode) {
    auto childrenNodes = parentNode->getChildren();
    for (auto it = childrenNodes.begin(); it != childrenNodes.end(); it++) {
        auto childNode = *it;
        if (dynamic_cast<Sprite*>(childNode) != NULL) {
            auto sprite = dynamic_cast<Sprite*>(childNode);
            sprite->setScale(sprite->getScaleX() * Director::getInstance()->getContentScaleFactor(),
                             sprite->getScaleY() * Director::getInstance()->getContentScaleFactor());
            
        }
        fixSpriteContentScale(childNode);
        
    }
}