MotionWelder的Cocos2d库的一个bug

今天帮同事查Motion Welder的cocoas2d的库的bug,花了一天时间。bug是这样的,有一个动画A,如果一开始就播它,那么一点问题都没有,如果先播动画B,然后再播动画A,那动画A就会出现问题,主要表现为拼出来的图是乱的。

 

这个问题怎么解决呢?我虽然会c和c++,但是oc的独特语法读起来还是很困难的,更不要说cocoas2d的库了。所以先花了半天时间被了一下课,让自己看一些术语,比如CCSprite,Frame, Animation, Clip不会头晕。然后开始看代码,代码不是很多,一千行左右。因为原始的库是j2me的,所以先去看了一下j2me的库,还好java我是懂的,这个倒不费什么事。对比了一下发现oc的库其实就是一个阉割版,许多功能没有实现。但是如果仅仅是用图片,并且不翻转的话,还是可以用的。所以可以确认数据解析这部分是没有问题。那么问题只能是出在了画图上,但是通过日志发现,每个图的输入在出错和不出错的情况下是一样。这下就麻烦了,这只能是某些属性,没有被重置。其实这个结论出来之后问题应该很快就找到了,但是由于对cocas2d不熟,所以又瞎碰了半天。一开始先是尝试每次都新new一个CCSprite而不是用原来的,结果发现问题依旧。后来突然想到去看看原版的库在初始化的时候到底还做了什么事情,结果发现,果然在CCSprite初始化时,多了一个步骤anchorPoint被初始化成了(0,0)

 

总体来说Cocoas2d的这个库写的很糙,甚至还有内存泄露,有时间好好看看oc和cocoas2d,然后重写一下吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值