问题:当对sprite进行setSpriteFrame后,在对其进行setTexture会造成纹理偏移
原因:
setSpriteFrame 和 setTexture 都会调用 setTextureRect,但是setSpriteFrame 会获取对应纹理的offset值并设置给 _unflippedOffsetPositionFromCenter,而 setTexture 并不会有类似的操作,同时也不会清楚该值,会造成该变量的值在 setSpriteFrame 后一直保持造成纹理偏移。
解决方案:
不修改引擎的操作
1. 避免setSpriteFrame 和 setTexture 混用
2. 用一个offset值为0的纹理setSpriteFrame一下,再setTexture
修改引擎操作
在setTexure中,对_unflippedOffsetPositionFromCenter 变量进行置0操作