使用SpriteFrame时,CCSprite无法正确显示

时间:2015-08-06 12:55:14

标签: cocos2d-iphone xamarin cocossharp

我的iOS应用程序(使用CocosSharp构建,Xamarin的Cocos2D端口)以640x960像素的设计分辨率运行,我有一些64x64精灵从spritesheet加载。
我使用TexturePacker来创建spritesheets并且我对它进行了配置,因此框架之间没有任何间距。
每帧都是64x64像素,当我检查spritesheet它看起来很好。

当我尝试根据帧(SpriteFrame)显示CCSprites时,它在设备(iPhone 4)上运行时一直看起来搞砸了

如果我将每个帧保存为单独的精灵并显示它们,它可以正常工作,但是当我使用SpriteFrame和spritesheet显示它们时却不行。

以下是该设备的外观:

enter image description here

这就是模拟器中的样子:

enter image description here

其他人经历过这种情况吗? 非常感谢所有的帮助,我现在已经坚持了一天!

更新
这是一个演示该问题的小型演示解决方案(需要Xamarin iOS构建) 您可以在模拟器或设备上运行它们,两者都显示相同的问题。

SpriteFrame_Issue.zip

1 个答案:

答案 0 :(得分:0)

我不是为了'播出'csharp ......但是:plist ok,纹理好,代码看起来不错。此问题是“裁剪”问题,而不是渲染问题。

它让我想起了这里常见的背景滚动问题,在2个相邻纹理之间无处不在1 px偏移!原来它与'引擎盖​​'int-> float-> int转换相关,与缩放/缩小混合,最终从“浮动”舍入中获得额外的像素作为偏移量。我能提供的最好的是“去图书馆看看”这种异常,关注'spriteFrame'代码库。提示:模拟器是64位,iPhone 4不是。