使用 SpriteFrame 时 CCSprite 显示不正确
CCSprite not displayed correctly when using SpriteFrame
我的 iOS 应用程序(使用 CocosSharp 构建,Xamarin 的 Cocos2D 端口)运行 设计分辨率为 640x960 像素,我有一些 64x64 精灵从spritesheet.
我正在使用 TexturePacker 来创建 spritesheets 并且我对其进行了配置,因此它在帧之间没有任何间距。
每帧都是 64x64 像素,当我检查 spritesheet 时它看起来非常好。
当我尝试基于帧 (SpriteFrame) 显示 CCSprite 时,在设备上 运行ning 时它看起来总是一团糟 (iPhone 4)
如果我将每个帧保存为单独的精灵并显示它们,它工作正常,但当我使用 SpriteFrame 和精灵表显示它们时却不行。
这是它在设备上的样子:
这是它在模拟器中的样子:
还有其他人经历过吗?
非常感谢所有帮助,我已经坚持了一天了!
更新:
这是一个演示问题的小演示解决方案(需要 Xamarin iOS 来构建)。
您可以在模拟器或设备上 运行 它,两者都显示相同的问题。
我没有工具 'play out' csharp ...但是:plist 好,纹理好,代码看起来不错。此问题是 'cropping' 问题,而不是渲染问题。
这让我想起了这里经常出现的背景滚动条问题,在 2 个相邻纹理之间不知从哪里偏移了 1 像素!原来它与 'under the hood' int->float->int 转换有关,与 scale-ups/scale-downs 混合在一起,最终会从 'float' 舍入中为您购买一个额外的像素作为偏移量。对于这种异常,我能提供的最好的是 'go look in the library',专注于 'spriteFrame' 代码库。提示:模拟器是 64 位的,iPhone 4 不是。
我的 iOS 应用程序(使用 CocosSharp 构建,Xamarin 的 Cocos2D 端口)运行 设计分辨率为 640x960 像素,我有一些 64x64 精灵从spritesheet.
我正在使用 TexturePacker 来创建 spritesheets 并且我对其进行了配置,因此它在帧之间没有任何间距。
每帧都是 64x64 像素,当我检查 spritesheet 时它看起来非常好。
当我尝试基于帧 (SpriteFrame) 显示 CCSprite 时,在设备上 运行ning 时它看起来总是一团糟 (iPhone 4)
如果我将每个帧保存为单独的精灵并显示它们,它工作正常,但当我使用 SpriteFrame 和精灵表显示它们时却不行。
这是它在设备上的样子:
这是它在模拟器中的样子:
还有其他人经历过吗?
非常感谢所有帮助,我已经坚持了一天了!
更新:
这是一个演示问题的小演示解决方案(需要 Xamarin iOS 来构建)。
您可以在模拟器或设备上 运行 它,两者都显示相同的问题。
我没有工具 'play out' csharp ...但是:plist 好,纹理好,代码看起来不错。此问题是 'cropping' 问题,而不是渲染问题。
这让我想起了这里经常出现的背景滚动条问题,在 2 个相邻纹理之间不知从哪里偏移了 1 像素!原来它与 'under the hood' int->float->int 转换有关,与 scale-ups/scale-downs 混合在一起,最终会从 'float' 舍入中为您购买一个额外的像素作为偏移量。对于这种异常,我能提供的最好的是 'go look in the library',专注于 'spriteFrame' 代码库。提示:模拟器是 64 位的,iPhone 4 不是。