排查plist中offset字段导致的抖动问题
💡
原文中文,约2800字,阅读约需7分钟。
📝
内容提要
最近遇到一个bug,plist制造的动画在creator中会颤动。排查发现是plist里的offset导致的。offset是trim通明像素前后,中心点的偏移。问题关键在于trimWidth-originWidth的结果是否能被2整除。使用TexturePacker来打包plist可以避免这个问题。测试例验证了creator能够正常处理offset为小数的情况。
🎯
关键要点
- 遇到bug,plist制造的动画在creator中颤动,原因是plist里的offset导致的。
- offset是trim透明像素前后的中心点偏移,关键在于trimWidth-originWidth的结果是否能被2整除。
- 使用TexturePacker打包plist可以避免offset导致的问题。
- 测试例显示,offset计算中小数部分会被丢弃,导致bug出现。
- 不同软件打包plist时,宽度可能出现偏差,根本原因是TrimDiff无法被2整除。
- 建议尽量使用TexturePacker打包plist,以减少问题发生。
- TexturePacker可能会自动调整尺寸以处理小数offset,确保解析功能正常。
- Cocos Creator能够正常处理offset为小数的情况,验证了结论的正确性。
❓
延伸问答
plist中的offset是什么?
offset是trim透明像素前后的中心点偏移。
为什么plist动画在creator中会颤动?
因为plist里的offset导致的,关键在于trimWidth-originWidth的结果是否能被2整除。
如何避免plist中的offset问题?
使用TexturePacker打包plist可以避免offset导致的问题。
TexturePacker如何处理offset为小数的情况?
TexturePacker可能会自动调整尺寸以处理小数offset,确保解析功能正常。
Cocos Creator能否处理offset为小数的情况?
Cocos Creator能够正常处理offset为小数的情况,验证了结论的正确性。
不同软件打包plist时可能出现什么问题?
不同软件打包plist时,宽度可能出现偏差,根本原因是TrimDiff无法被2整除。
🏷️
标签
➡️