cocos2dx 边缘1像素的图片/帧动画,用Texturepacker打包后,移动动作抖动

前言:新项目里有很多边缘是1个像素的图片(头像边框,listView边框,等)。这些图片在用Texturepacker打包成pvr.ccz后,运用在游戏场景中,比如:listView中,滑动view的时候,图片的边缘总是有1-2个像素的消失和抖动。

解决思路:
1,从引擎方面着手,找寻TextureCache加载流程代码未发现异常。到cocoChina寻找cocos引擎组帮助,得到的解答是修改shader的精度。(此修改改后,图片仍然抖动,问题仍然未解决)。附上解答贴地址(http://forum.cocos.com/t/topic/40483/49),如下:
cocos2dx 边缘1像素的图片/帧动画,用Texturepacker打包后,移动动作抖动_第1张图片

2,从lua代码找方向。今天试了下用原生的不经过TP打包的图片,进行图片创建,发现图片在listView中并不会发生特别大的抖动。所以开始从TP方面下手寻找解决方法(最终问题得到解决)

解决方法:
1,在TP打包的时候要选择NPOT模式,将图集打包成2次幂大小:
cocos2dx 边缘1像素的图片/帧动画,用Texturepacker打包后,移动动作抖动_第2张图片

2,在TP打包的时候,调整图片打包后的外边缘大小,和内边缘大小,防止像素被吞:
cocos2dx 边缘1像素的图片/帧动画,用Texturepacker打包后,移动动作抖动_第3张图片

3,一个图集pvr.ccz中,不可以打包太多图片。太多图片会导致图集加载到内存中,压力过大,移动起来图片会发生抖动
4,一个图集pvr.ccz中,不能有1个像素点大小的图片,如(1x4大小的图片),否则也会闪
5,在满足了以上几点之后。问题算是解决了。但是原生引擎的1像素抖动,还是会存在。这个貌似是一直都存在的问题?

你可能感兴趣的:(cocos2dx)