Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Spriite* Spriite::createWithSpriteFrame(SpriteFrame *spriteFrame, float size, bool card)
- {
- Spriite *spriite = new (std::nothrow) Spriite(size, card);
- if (spriite && spriteFrame && spriite->init())
- {
- spriite->setSpriteFrame(spriteFrame);
- spriite->autorelease();
- return spriite;
- }
- CC_SAFE_DELETE(spriite);
- return nullptr;
- }
- Spriite::Spriite(float size, bool card)
- {
- this->size = size;
- this->card = card;
- }
- bool Spriite::init()
- {
- if (!ClippingNode::init())
- {
- return false;
- }
- this->setCascadeOpacityEnabled(true);
- this->setContentSize(Size(size, size));
- this->addChild(sprite = Sprite::create());
- if (card)
- {
- this->setStencil(Shape::create(size, size, Color4B::BLACK, 0, Color4B::BLACK, size * 20 / 400));
- }
- else
- {
- this->setStencil(sprite);
- }
- return true;
- }
- void Spriite::setTexture(const std::string &filename, bool mustBeResized)
- {
- sprite->setTexture(filename);
- if (!mustBeResized) return;
- resize();
- }
- void Spriite::setSpriteFrame(SpriteFrame* newFrame, bool mustBeResized)
- {
- sprite->setSpriteFrame(newFrame);
- if (!mustBeResized) return;
- resize();
- }
- void Spriite::resize()
- {
- if (auto texture = sprite->getTexture())
- {
- auto pixelsSize = texture->getContentSizeInPixels();
- sprite->setScale(Director::getInstance()->getContentScaleFactor() * size / (pixelsSize.width >= pixelsSize.height && !card ? pixelsSize.width : pixelsSize.height));
- }
- }
Add Comment
Please, Sign In to add comment