cocos2d-x getBoundingBox getContentSize getTextureRect 解释

这是cocos2d-x代码看注释的解释 翻译的 不到之处谅解 后面在总结
getBoundingBox  // 返回一个AABB(axis-aligned bounding-box)在其父母的坐标系统。Returns an AABB (axis-aligned bounding-box) in its parent's coordinate system.
getContentSize  //节点容量大小
getTextureRect //返回精灵矩形的点

例子1
{
图片 Icon-48.png  这种图片 48 × 48 pixels 标准icon中得一个 
    Sprite *pSpBox=Sprite::create("Icon-48.png");
    pSpBox->setPosition(Vec2(m_pWinSize.width*0.5, m_pWinSize.height*0.5));
    pSpBox->setScale(0.2f);
    addChild(pSpBox);
    {
        CCLOG(" A");
         Rect rect=pSpBox-> getBoundingBox();
         Size size=pSpBox-> getContentSize();
         Rect sizea=pSpBox-> getTextureRect();
        CCLOG(" BoundingBox(%f,%f,%f,%f)",rect.origin.x,rect.origin.y,rect.size.width,rect.size.height);
        CCLOG(" ContentSize(%f,%f)",size.width,size.height);
        CCLOG(" TextureRect(%f,%f,%f,%f)",sizea.origin.x,sizea.origin.y,sizea.size.width,sizea.size.height);
    }
    pSpBox->setScale(0.5f);
    {
        CCLOG("B");
         Rect rect=pSpBox-> getBoundingBox();
         Size size=pSpBox-> getContentSize();
         Rect sizea=pSpBox-> getTextureRect();
        CCLOG(" BoundingBox(%f,%f,%f,%f)",rect.origin.x,rect.origin.y,rect.size.width,rect.size.height);
        CCLOG(" ContentSize(%f,%f)",size.width,size.height);
        CCLOG(" TextureRect(%f,%f,%f,%f)",sizea.origin.x,sizea.origin.y,sizea.size.width,sizea.size.height);
    }

cocos2d: A
cocos2d: BoundingBox(475.200012,315.200012,9.600006,9.600006)
cocos2d: ContentSize(48.000000,48.000000)
cocos2d: TextureRect(0.000000,0.000000,48.000000,48.000000)
cocos2d: B
cocos2d: BoundingBox(468.000000,308.000000,24.000000,24.000000)
cocos2d: ContentSize(48.000000,48.000000)
cocos2d: TextureRect(0.000000,0.000000,48.000000,48.000000)
}


例子2
{

图片 Icon-48.png  这种图片 48 × 48 pixels 标准icon中得一个 

    SpriteFrameCache::getInstance()->addSpriteFramesWithFile("haohaoxuexi.plist");//把现有的icon图片整到一个大图中测试
    Sprite *pSpBox=Sprite::createWithSpriteFrameName("Icon-48.png");//create("Icon-48.png");
    pSpBox->setPosition(Vec2(m_pWinSize.width*0.5, m_pWinSize.height*0.5));
    pSpBox->setScale(0.2f);
    addChild(pSpBox);
    
    {
        CCLOG(" A");
         Rect rect=pSpBox-> getBoundingBox();
         Size size=pSpBox-> getContentSize();
         Rect sizea=pSpBox-> getTextureRect();
        CCLOG(" BoundingBox(%f,%f,%f,%f)",rect.origin.x,rect.origin.y,rect.size.width,rect.size.height);
        CCLOG(" ContentSize(%f,%f)",size.width,size.height);
        CCLOG(" TextureRect(%f,%f,%f,%f)",sizea.origin.x,sizea.origin.y,sizea.size.width,sizea.size.height);
    }
    pSpBox->setScale(0.5f);
    {
        CCLOG(" B");
        Rect rect=pSpBox-> getBoundingBox();
        Size size=pSpBox-> getContentSize();
        Rect sizea=pSpBox-> getTextureRect();
        CCLOG(" BoundingBox(%f,%f,%f,%f)",rect.origin.x,rect.origin.y,rect.size.width,rect.size.height);
        CCLOG(" ContentSize(%f,%f)",size.width,size.height);
        CCLOG(" TextureRect(%f,%f,%f,%f)",sizea.origin.x,sizea.origin.y,sizea.size.width,sizea.size.height);
    }
//输出结果
cocos2d: A
cocos2d: BoundingBox(475.200012,315.200012,9.600006,9.600006)
cocos2d: ContentSize(48.000000,48.000000)
cocos2d: TextureRect(447.000000,1616.000000,48.000000,48.000000)
cocos2d: B
cocos2d: BoundingBox(468.000000,308.000000,24.000000,24.000000)
cocos2d: ContentSize(48.000000,48.000000)
cocos2d: TextureRect(447.000000,1616.000000,48.000000,48.000000)

//"haohaoxuexi.plist" 中图片Icon-48.png 数据做参考
 <key>Icon-48.png</key>
    <dict>
        <key>frame</key>
        <string>{{447,1616},{48,48}}</string>
        <key>offset</key>
        <string>{0,0}</string>
        <key>rotated</key>
        <false/>
        <key>sourceColorRect</key>
        <string>{{0,0},{48,48}}</string>
        <key>sourceSize</key>
        <string>{48,48}</string>
    </dict>

}

应该都知道什么意思了,还是总结一下吧

getBoundingBox  中得 Size.width .height  显示图片真实大小 (考虑缩放和不缩放)
getContentSize  纹理图片大小
getTextureRect  当前的纹理在总纹理的位置 (不考虑 缩放不缩放)


图片有缩放 就用 getBoundingBox ,不考虑缩放用 getContentSize
看需求用哪个?


getBoundingBox 中得 origin.x .y 本人也不知道什么意思,打印出来没有看懂。前做这点解释,知道后在更新

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值