cocos2d-x getBoundingBox getContentSize getTextureRect 解释
发布时间:2020-12-14 19:12:39 所属栏目:百科 来源:网络整理
导读:这是cocos2d-x代码看注释的解释 翻译的 不到之处谅解 后面在总结 getBoundingBox // 返回一个AABB(axis-aligned bounding-box)在其父母的坐标系统。Returns an AABB (axis-aligned bounding-box) in its parent's coordinate system. getContentSize //节点容
这是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"); Rectrect=pSpBox-> getBoundingBox(); Sizesize=pSpBox-> getContentSize(); Rectsizea=pSpBox-> getTextureRect(); CCLOG(" BoundingBox(%f,%f,%f)",rect.origin.x,rect.origin.y,rect.size.width,rect.size.height); CCLOG(" ContentSize(%f,size.width,size.height); CCLOG(" TextureRect(%f,sizea.origin.x,sizea.origin.y,sizea.size.width,sizea.size.height); } pSpBox->setScale(0.5f); { CCLOG("B"); Rectrect=pSpBox-> getBoundingBox(); Sizesize=pSpBox-> getContentSize(); Rectsizea=pSpBox-> getTextureRect(); CCLOG(" BoundingBox(%f,rect.size.height); CCLOG(" ContentSize(%f,size.height); CCLOG(" TextureRect(%f,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) } 例子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"); Rectrect=pSpBox-> getBoundingBox(); Sizesize=pSpBox-> getContentSize(); Rectsizea=pSpBox-> getTextureRect(); CCLOG(" BoundingBox(%f,sizea.size.height); } pSpBox->setScale(0.5f); { CCLOG(" B"); Rect rect=pSpBox-> getBoundingBox(); Size size=pSpBox-> getContentSize(); Rect sizea=pSpBox-> getTextureRect(); CCLOG(" BoundingBox(%f,sizea.size.height); } //输出结果 cocos2d: A cocos2d: BoundingBox(475.200012,9.600006) cocos2d: ContentSize(48.000000,48.000000) cocos2d: TextureRect(447.000000,1616.000000,48.000000) cocos2d: B cocos2d: BoundingBox(468.000000,24.000000) cocos2d: ContentSize(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}}</string> <key>sourceSize</key> <string>{48,48}</string> </dict> } 应该都知道什么意思了,还是总结一下吧 getBoundingBox 中得 Size.width .height 显示图片真实大小 (考虑缩放和不缩放) getContentSize 纹理图片大小 getTextureRect 当前的纹理在总纹理的位置 (不考虑 缩放不缩放) 图片有缩放 就用 getBoundingBox ,不考虑缩放用 getContentSize 看需求用哪个? getBoundingBox 中得 origin.x .y 本人也不知道什么意思,打印出来没有看懂。前做这点解释,知道后在更新 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |