我们的需求:
在播放 dragonBones 动画时,获取单个 Slot 的位置、旋转、缩放,以及图片大小,从而计算其碰撞体积。用于在横板过关游戏中判断一个角色的拳头是否打中了另一个角色。
遇到的问题:
在 h5 版本中,我们用 armatureDisplay.armature().getSlot(‘xxx’).global 即可获取到单个 Slot 的位置、旋转、缩放。但是在 native 版本却不能。
根据 cocos creator 稳定版(1.8.2)创建 typescript 工程时附带的 creator.d.ts,dragonBones.TransformObject 类会有一个叫做 global 的属性(egret 的文档 http://developer.egret.com/cn/apidoc/index/name/dragonBones.TransformObject 也是这样描述)。
从代码看,js_register_cocos2dx_dragonbones_TransformObject 确实没有名为 “global” 的属性。h5 版和 native 版接口不统一。
另外,dragonBones.AnimationState 的 isCompleted 属性,在 h5 版本可以正确运作,但是在 native 版本却始终返回 true(哪怕动画没有播放完毕),我们也只得改为 animState.playTimes > 0 && animState.getCurrentPlayTimes() >= 1 这样奇怪的写法来绕行。暂时是运行起来没什么问题,但心里也有点方。
希望能修正这些问题,谢谢。