cocostudio骨骼动画 -- 原点
来源:互联网 发布:载软件.net framework 编辑:程序博客网 时间:2024/04/29 13:20
1、如果把一个元素如CCSprite加入到CCArmature中,那么必须先要知道CCArmature的原点位置,
经过测试发现:原点大致在(下图所示),x居中,y位于底部。
2、
CCArmature本身继承与CCNode,所以可以设置
锚点和位置,但是CCArmature的大小,也可以说是上下左右的边界如何计算还不是很明白。
看下面的代码:
void CCArmature::updateOffsetPoint(){ // Set contentsize and Calculate anchor point. CCRect rect = boundingBox(); //计算大小 setContentSize(rect.size); m_pOffsetPoint = ccp(-rect.origin.x, -rect.origin.y); if (rect.size.width != 0 && rect.size.height != 0) { setAnchorPoint(ccp(m_pOffsetPoint.x / rect.size.width, m_pOffsetPoint.y / rect.size.height)); }}
-->>
CCRect CCSkeleton::boundingBox () {float minX = FLT_MAX, minY = FLT_MAX, maxX = FLT_MIN, maxY = FLT_MIN;float scaleX = getScaleX();float scaleY = getScaleY();float vertices[8];for (int i = 0; i < skeleton->slotCount; ++i) {Slot* slot = skeleton->slots[i];if (!slot->attachment || slot->attachment->type != ATTACHMENT_REGION) continue;RegionAttachment* attachment = (RegionAttachment*)slot->attachment;RegionAttachment_computeVertices(attachment, slot->skeleton->x, slot->skeleton->y, slot->bone, vertices);minX = min(minX, vertices[VERTEX_X1] * scaleX);minY = min(minY, vertices[VERTEX_Y1] * scaleY);maxX = max(maxX, vertices[VERTEX_X1] * scaleX);maxY = max(maxY, vertices[VERTEX_Y1] * scaleY);minX = min(minX, vertices[VERTEX_X4] * scaleX);minY = min(minY, vertices[VERTEX_Y4] * scaleY);maxX = max(maxX, vertices[VERTEX_X4] * scaleX);maxY = max(maxY, vertices[VERTEX_Y4] * scaleY);minX = min(minX, vertices[VERTEX_X2] * scaleX);minY = min(minY, vertices[VERTEX_Y2] * scaleY);maxX = max(maxX, vertices[VERTEX_X2] * scaleX);maxY = max(maxY, vertices[VERTEX_Y2] * scaleY);minX = min(minX, vertices[VERTEX_X3] * scaleX);minY = min(minY, vertices[VERTEX_Y3] * scaleY);maxX = max(maxX, vertices[VERTEX_X3] * scaleX);maxY = max(maxY, vertices[VERTEX_Y3] * scaleY);}CCPoint position = getPosition();return CCRectMake(position.x + minX, position.y + minY, maxX - minX, maxY - minY);}
0 0
- cocostudio骨骼动画 -- 原点
- cocostudio骨骼动画问题总汇
- cocoStudio骨骼动画之代码实现
- 从零开始学习cocoStudio(5)--骨骼动画使用方法
- cocoStudio工具的使用-----骨骼动画编辑
- Cocostudio骨骼动画的复用
- cocostudio骨骼动画的加载与换装
- cocos2dx-2.2 cocostudio 骨骼动画demo制作过程
- Cocos2d-x教程 CocoStudio篇 (1) 创建骨骼动画
- 使用 CocoStudio 创建 Cocos2d-x 序列帧和骨骼动画
- CocoStudio sample讲解 SampleCollision骨骼动画与简单碰撞
- 使用 CocoStudio 创建 Cocos2d-x 序列帧和骨骼动画
- CocoStudio sample讲解 SampleCollision骨骼动画与简单碰撞
- CocoStudio sample讲解 SampleCollision骨骼动画与简单碰撞
- Cocos2d-x 3.0 cocostudio骨骼动画的动态换肤
- 使用 CocoStudio 创建 Cocos2d-x 序列帧和骨骼动画
- 使用CocoStudio创建Cocos2d-x序列帧和骨骼动画
- CocoStudio sample讲解 SampleCollision骨骼动画与简单碰撞
- Excel冻结首行/首列
- ======Java中的SSL通信初步(1)======
- 通过拖动鼠标进行滚动的js插件
- MySQL数据库基本操作
- 第三周项目五数组作数据成员(2)
- cocostudio骨骼动画 -- 原点
- 我的博客开通了,这将是我的一个成长记录
- flash和图片开源库
- Android Installation error: INSTALL_FAILED_INSUFFICIENT_STORAGE解决办法
- 百度研发工程师2015深圳笔试卷
- Javascript keyCode对照表
- ios如何获取手机的网络状态和运营商名称
- vs2010配置Qt开发环境
- ORA-12154: TNS:could not resolve the connect identifier specified