我们项目想使用骨骼动画,现在我在试水。不试不知道,一试果然水很深啊!!!!!!
美术那边用ccs1.6做骨骼动画的,我们cocos引擎使用的是3.1
现在有个诡异的问题:
如果不加帧事件,动画播放到倒数第二帧就没了
反之,如果加了帧事件,最后一帧是可以播放到了,但是这一帧会炸开
我们项目想使用骨骼动画,现在我在试水。不试不知道,一试果然水很深啊!!!!!!
美术那边用ccs1.6做骨骼动画的,我们cocos引擎使用的是3.1
现在有个诡异的问题:
如果不加帧事件,动画播放到倒数第二帧就没了
反之,如果加了帧事件,最后一帧是可以播放到了,但是这一帧会炸开
炸开的问题参考下这个pr
https://github.com/cocos2d/cocos2d-x/pull/9037/files
参考着改,不要直接复制,这个是针对3.3RC0的fix旧版本可能有点不同
多谢回答~
改了还是不行
你怎么改的= =
今天也有个人反馈说改了没用,结果是改错了
不知道是不是我改错了。。。
_worldInfo->copy(_tweenData);
if (_dataVersion >= VERSION_COMBINED)
{
//TransformHelp::nodeConcat(*_tweenData, *_boneData);
//_tweenData->scaleX -= 1;
//_tweenData->scaleY -= 1;
TransformHelp::nodeConcat(*_worldInfo, *_boneData);
_worldInfo->scaleX -= 1;
_worldInfo->scaleY -= 1;
}
/*_worldInfo->copy(_tweenData);
_worldInfo->x = _tweenData->x + _position.x;
_worldInfo->y = _tweenData->y + _position.y;
_worldInfo->scaleX = _tweenData->scaleX * _scaleX;
_worldInfo->scaleY = _tweenData->scaleY * _scaleY;
_worldInfo->skewX = _tweenData->skewX + _skewX + _rotationX;
_worldInfo->skewY = _tweenData->skewY + _skewY - _rotationY;*/
_worldInfo->x = _worldInfo->x + _position.x;
_worldInfo->y = _worldInfo->y + _position.y;
_worldInfo->scaleX = _worldInfo->scaleX * _scaleX;
_worldInfo->scaleY = _worldInfo->scaleY * _scaleY;
_worldInfo->skewX = _worldInfo->skewX + _skewX + CC_DEGREES_TO_RADIANS(_rotationZ_X);
_worldInfo->skewY = _worldInfo->skewY + _skewY + CC_DEGREES_TO_RADIANS(_rotationZ_Y);
if(_parentBone)
= = 都说让你比较着改咯。。。谁让你抄的。
后头两个宏不需要的
额,抱歉,才接触cocos2dx,很多东西不熟悉~
后面两句改成这样了:
_worldInfo->skewX = _worldInfo->skewX + _skewX + _rotationZ_X;
_worldInfo->skewY = _worldInfo->skewY + _skewY + _rotationZ_Y;
还是会炸开。。。。。
有一点想不明白,加了帧事件才会炸开,不加帧事件的话最后一帧播不出来。。。。。
我也是醉了。。。。。
顺便请教下,骨骼动画怎么调试,拜谢了~~~~
动画给我玩? 不方便可以加我Q