如何获取CCArmature中CCBone位置和角度信息?

想在一个人物的武器上绑上box2d碰撞框 然后在update里根据武器的位置更新碰撞框的位置 这样人物执行攻击动画时 可以实时检测武器是否攻击到敌人 但是无法获取武器ccbone的位置和角度信息 无论骨骼动画执行到什么状态

CCBone *bone = armature->getBone(“bonename”);
bone->getPosition() bone->getRotation返回都是0 使用convertToWorldSpace返回的也一直是父Armature的位置信息 要怎么做能得到ccbone其位置呢 是不是可以用其CCAffineTransform运算得到 如何运算?

还有一个问题。。 我在cocostudio中绘制的武器上的碰撞框 如何在cocos2d x里面加载后 能够显示出来?我用的3.0 如果3.0不支持 2.x该如何做?

楼主你好,可以使用getWorldInfo()方法获取。

感谢!还有一个问题。。 我在cocostudio中绘制的武器上的碰撞框 如何在cocos2d x里面加载后 能够显示出来?我用的3.0 如果3.0不支持 2.x该如何做? 再次感谢!

新问题来了 。。。getWorldInfo 能够得到坐标信息 但是如何得到角度信息呢 试了skewx skewy tweenRotate 好像都不是

:2:LZ 我和你遇到的问题类似 这个 角度 我看来下 应该 可以用矩阵算 但是 数学不好 不知道怎么算,源码里面的话 基本 sprite那块的update就没看懂 他是怎么转换 角度的

同病相怜 :6:

请问getWorldInfo获取到的坐标是相对于谁的呢?如果要获取bone在世界坐标系的坐标该怎么获取呢。

LZ 解决了吗??

同样困惑中…播放动画中的时候,经常取到的坐标转换后大得离谱

同问这个问题。。。LZ解决了吗。。。顶一下。。。

恩 我用的是 lua
local txbone = hero:getBone(“weapon”) 可以正常获取骨骼
print(txbone:getWorldInfo().x)

使用获取出来的却是 nil 知道怎么解决么?

Bone * bone = this->getBone("weapons");
BaseData * worldInfo = bone->getWorldInfo();
Vec2 bodyPos = this->convertToWorldSpace(Vec2(worldInfo->x, worldInfo->y));

如此即可

尼玛,看到里面有个链接 ,通过这个去算角度
http://www.senocular.com/flash/tutorials/transformmatrix/ 真心跪了

你好。。。同样的问题请问你解决了么。。。