box2d原生是没有缩放选项的
但是遇到屏幕适配问题的时候sprite难免需要做缩放操作
研究了半天,总算有个解决方法。
物理数据源是用PhysicsEditor生成的,里面有一个PTM_Ratio选项,也就是像素/米比率
这个属性主要应用于对形状的描述,一般在程序里面使用时,通过box2d获取到对象的位置以旋转角度。
位置属性需要乘以PTM_Ratio从物理空间转换到像素空间。
如果实际使用的比率因子比PTM_Ratio小时便可实现缩放。
具体的做法是:
sprite的缩放系数为Real_Ratio/PTM_Ratio
sprite的Position属性缩放系数使用Real_Ratio
box2d中的Shape缩放因子使用PTM_Ratio,如果使用物理编辑器则只要设置物理编辑器的PTM_Ratio即可
即可实现Real_Ratio/PTM_Ratio倍率的缩放