Cocos2d-x问题纪录:removeChild和附有PhysicsBody的csb动画

来源:互联网 发布:网络司法拍卖佣金 编辑:程序博客网 时间:2024/05/29 13:24

使用Cocos2d-x做游戏总是会出现许多错误,就叫问题,现在开始就把我遇到的一些奇怪的问题都记录下来。

目前在做一个简单的休闲游戏。游戏玩法有点像《mmm,Finger》这款游戏,里面会有许多会移动会旋转的附有刚体的矩阵(就是很多带刚体的精灵在做有规律的运动)。
我想,用什么方法做这些精灵呢?然后就想到来使用触控的Cocos Studio来制作这些精灵,然后再附加刚体,谁知道遇到了大坑!!!

一开始挺顺利,刚体附到了动画,但是却发现两个很严重的问题!
而且一般发生在这样的动画:比如我创建了两个矩形精灵,一左一右。然后把这两个矩形加到一个node上,然后让这个node绕其锚点旋转。

第一:有一些动画播放的时候有问题,比如上面的节点,动画设置的是节点Node不断地绕中心转,然后发现运行时发现不仅父节点在转,子节点(两个矩形)也在各自绕它们自己的锚点转。。。假如不附上刚体就没有这个问题。

第二:简直令人发指,就是有关这个removeChild。而且只发生在这种动画身上:带有子节点的转动动画。比如我一个层有几个这样的父节点,它们各自有子节点,各自在做运动。但假如我只要在层里remove掉了任何的父节点,其他会旋转的父节点居然不动了。更奇怪的是,我层里面还有onTouchMoved这个函数,当我鼠标点住滑动的时候,那些父节点又动了起来,一停下又不动了。我实在是搞不明白,为什么onTouchMoved会影响到动画??
一开始我以为是因为我没有在removeChild之前停止父节点的动作。
然后我就依次试了:
stopAllActions();
stopAction(action);
animation->pause();
animation->removeTimeline();
然并卵。
至今还是没有解决这个问题。

0 0