我的游戏中的一个强化道具是主要精灵的尺寸减小。因此,为了记忆起见,我没有在每一帧循环 sprite.scale,而是以低于原始 sprite 的百分比大小重新保存了 sprite,并且只想替换它。然后一旦“死亡”发生或计时器用完,原始精灵就会返回。
因此,我正在使用此代码使其变小:
[player setTexture:[[CCTextureCache sharedTextureCache] addImage:@"player-small.png"]];
并且此代码用于重置为正常:
[player setTexture:[[CCTextureCache sharedTextureCache] addImage:@"player-orig.png"]];
但是,原始图像(在初始化和重置时)看起来很正常。但是当我将它更改为新精灵(其尺寸正好是原始精灵的 75%)时,它会改变它,但只显示新精灵的一个象限,但具有原始尺寸。
我尝试在重新纹理精灵之前修改 sprite.contentsize,但所做的只是改变大小,但不会影响图像混乱的问题。
以下是一些视觉示例:
原来的:
带有 contentSize 修改的重新纹理化图像:
将图像重新纹理化为原始图像,其中 contentSize 未正确重置(哎呀,但这根本不是问题 - 我只是忘记读取尺寸代码):
PS——我的所有精灵都有“-hd.png”版本,所以我只想补充一点,以防有人想知道(到目前为止,图像和测试只在“nonretina”模拟器上进行)。
谢谢你!
编辑:在视网膜模拟器上进行测试时也会出现问题。