本文整理汇总了C++中SpriteFrame::getOriginalSize方法的典型用法代码示例。如果您正苦于以下问题:C++ SpriteFrame::getOriginalSize方法的具体用法?C++ SpriteFrame::getOriginalSize怎么用?C++ SpriteFrame::getOriginalSize使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SpriteFrame
的用法示例。
在下文中一共展示了SpriteFrame::getOriginalSize方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: prepareForRender
void LightEffect::prepareForRender(Sprite *sprite, Texture2D *normalmap)
{
auto gl = getGLProgramState();
gl->setUniformVec2("u_contentSize", sprite->getContentSize());
Point posRelToSprite = PointApplyAffineTransform(Point(_lightPos.x, _lightPos.y), sprite->getWorldToNodeAffineTransform());
gl->setUniformVec3("u_lightPos", Vec3(posRelToSprite.x, posRelToSprite.y, _lightPos.z));
gl->setUniformTexture("u_normals", normalmap);
int opacity = sprite->getOpacity();
SpriteFrame *frame = sprite->getSpriteFrame();
Size untrimmedSize = frame->getOriginalSize();
Size trimmedSize = frame->getRect().size;
Vec2 framePos = frame->getRect().origin;
Size texSize = frame->getTexture()->getContentSize();
// set sprite position in sheet
gl->setUniformVec2("u_spritePosInSheet", Vec2(framePos.x / texSize.width, framePos.y / texSize.height));
gl->setUniformVec2("u_spriteSizeRelToSheet", Vec2(untrimmedSize.width / texSize.width, untrimmedSize.height / texSize.height));
gl->setUniformInt("u_spriteRotated", frame->isRotated());
gl->setUniformFloat("u_spriteOpacity", (float)opacity / 255.0f);
// set offset of trimmed sprite
Vec2 bottomLeft = frame->getOffset() + (untrimmedSize - trimmedSize) / 2;
Vec2 cornerOffset = frame->isRotated() ? Vec2(bottomLeft.y, bottomLeft.x)
: Vec2(bottomLeft.x, untrimmedSize.height - trimmedSize.height - bottomLeft.y);
gl->setUniformVec2("u_spriteOffset", cornerOffset);
}
示例2: createAnim
Sprite* TuiManager::createAnim(float tag,const char* name,const char* plist,float x,float y,float rotation){
SpriteFrameCache::getInstance()->addSpriteFramesWithFile(plist);
Animation* pAnim = TuiUtil::createAnimWithName(name,0.05f,-1);
SpriteFrame *pTmpFrame = SpriteFrameCache::getInstance()->getSpriteFrameByName(string(name) + "1.png");
Sprite* pSprite = Sprite::create();
pSprite->runAction(Animate::create(pAnim));
pSprite->setPosition(Vec2(x,-y));
pSprite->setRotation(rotation);
pSprite->setContentSize(pTmpFrame->getOriginalSize());
pSprite->setTag(tag);
return pSprite;
}
示例3: prepareForRender
void LightsHolder::prepareForRender(Sprite *_sprite, Texture2D *normalmap)
{
int idx=0;
for(auto &ef : _effectsArray) {
if (ef != nullptr)
{
Point posRelToSprite = PointApplyAffineTransform(Point(ef->getLightPos().x, ef->getLightPos().y),_sprite->getWorldToNodeAffineTransform());
_lightPos[idx]=Vec3(posRelToSprite.x, posRelToSprite.y, ef->getLightPos().z);
brightness[idx]=ef->getBrightness();
}
idx++;
}
auto gl = getGLProgramState();
gl->setUniformVec2("u_contentSize", _sprite->getContentSize());
gl->setUniformVec3v("u_lightPos",_lightsNumber,_lightPos);
gl->setUniformTexture("u_normals", normalmap);
SpriteFrame *frame = _sprite->getSpriteFrame();
Size untrimmedSize = frame->getOriginalSize();
Size trimmedSize = frame->getRect().size;
Vec2 framePos = frame->getRect().origin;
Size texSize = frame->getTexture()->getContentSize();
// set sprite position in sheet
gl->setUniformVec2("u_spritePosInSheet", Vec2(framePos.x / texSize.width, framePos.y / texSize.height));
gl->setUniformVec2("u_spriteSizeRelToSheet", Vec2(untrimmedSize.width / texSize.width, untrimmedSize.height / texSize.height));
gl->setUniformFloatv("u_brightness",_lightsNumber, brightness);
gl->setUniformInt("u_spriteRotated", frame->isRotated());
gl->setUniformInt("u_lightsNumber", _lightsNumber);
// set offset of trimmed sprite
Vec2 bottomLeft = frame->getOffset() + (untrimmedSize - trimmedSize) / 2;
Vec2 cornerOffset = frame->isRotated() ? Vec2(bottomLeft.y, bottomLeft.x)
: Vec2(bottomLeft.x, untrimmedSize.height - trimmedSize.height - bottomLeft.y);
gl->setUniformVec2("u_spriteOffset", cornerOffset);
}