cocos2d-x getBoundingBox getContentSize getTextureRect 解释
2015-10-27 17:47
579 查看
这是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 本人也不知道什么意思,打印出来没有看懂。前做这点解释,知道后在更新
原文地址:http://blog.csdn.net/gamecocos2dx/article/details/40423591
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 本人也不知道什么意思,打印出来没有看懂。前做这点解释,知道后在更新
原文地址:http://blog.csdn.net/gamecocos2dx/article/details/40423591
相关文章推荐
- cocos2dx 3.x 支持自定义的渲染命令
- error C4430: 缺少类型说明符 - 假定为 int
- cocos2d 的draw()
- cocos2dx(lua)ASTAR算法
- cocos2dx战争迷雾实现(lua)
- Cocos2dx基础
- cocos3.x 特效使用方法
- 【Cocos Shader】2D灯光及遮罩效果
- 我学cocos2d-x (两) 采用Delegate(信托)
- 学习笔记cocos2d-x之元素介绍
- Cocos2d优化内存建议
- Cocos2d各平台支持最大纹理尺寸
- cocos2d-x -3.81+win7+vs2013开发环境创建新的项目
- Cocos2d-x 新手引导
- cocos2d-x-2.2的SimpleAudioEngine::sharedEngine()->playEffect()计划中断bug
- Cocos性能优化工具的开发介绍Visual Studio内存泄漏检测工具——Visual Leak Detector
- 学习笔记cocos2d-x之项目分析
- cocos2d-x:学习笔记-01
- cocos2dx-3.2(35) ClippingNode 遮罩
- cocos2d随机数