CCTMXTileMap适用于模拟器,但不适用于设备

时间:2012-11-12 21:28:56

标签: ios cocos2d-iphone ios-simulator device tmx

我有一个TMX平铺地图,我用它来制作一个使用cocos2d的应用程序的背景。当我使用模拟器时,一切都运行完美。但是,如果我使用该设备,一切都会出错。在启动时,它以全屏加载屏幕开始,但很快转换为: Image after loading

然后是黑屏。 然后它给我控制台输出:

1970-01-02 10:57:56.-721 TankMazeNEW[729:707] cocos2d: surface size: 960x640
1970-01-02 10:57:56.-709 TankMazeNEW[729:707] cocos2d: CCTexture2D: Using RGB565texture since image has no alpha
1970-01-02 10:57:57.-645 TankMazeNEW[729:707] -[CCFileUtils fullPathFromRelativePath:resolutionType:] : cocos2d: Warning: File not found: /Users/vivaanbahl/Desktop/Iphone Apps/TankMazeNEW/TankMazeNEW/tanks.png
1970-01-02 10:57:57.-642 TankMazeNEW[729:707] cocos2d: CCTexture2D. Can't create Texture. cgImage is nil
1970-01-02 10:57:57.-638 TankMazeNEW[729:707] cocos2d: Couldn't add image:/Users/vivaanbahl/Desktop/Iphone Apps/TankMazeNEW/TankMazeNEW/tanks.png in CCTextureCache
1970-01-02 10:57:57.-528 TankMazeNEW[729:707] cocos2d: CCSpriteBatchNode: resizing TextureAtlas capacity from [3501] to [4669].
1970-01-02 10:57:57.-487 TankMazeNEW[729:707] cocos2d: CCSpriteBatchNode: resizing TextureAtlas capacity from [4669] to [6226].
1970-01-02 10:57:57.-435 TankMazeNEW[729:707] cocos2d: CCSpriteBatchNode: resizing TextureAtlas capacity from [6226] to [8302].
1970-01-02 10:57:57.-364 TankMazeNEW[729:707] cocos2d: CCSpriteBatchNode: resizing TextureAtlas capacity from [8302] to [11070].

它没有找到的图像'是包含图像到图块外观的源图像,它位于项目文件夹内,位于日志中上面指定的文件路径中。 有人能看出我做错了吗?

3 个答案:

答案 0 :(得分:0)

resizing TextureAtlas capacity from [8302] to [11070].

我打赌你的瓷砖地图太大了。在模拟器上它并不重要,因为模拟器使用你的Mac内存,可能在2到16 GB之间。最大的iPad可以提供1 GB,而早期的设备只有128到512 MB。

进行简单的数学测试:将tilemap的宽度和高度相乘,然后将其乘以tilemap中的tile图层数。如果每个磁贴只需要1个字节,那么tilemap将使用的字节数最少。

由于情况并非如此,将数字乘以50字节,这更接近于瓷砖真正消耗的数量(它肯定超过32字节)。

具有两层的1000x1000 tilemap消耗近100兆字节。

答案 1 :(得分:0)

tanks.png拼写正确吗?

在记事本中打开TMX文件并搜索tanks.png以查看它是否在正确的路径中拼写错误。

答案 2 :(得分:0)

我有同样的问题: 对我来说有用的是将tile集的.png文件添加到Xcode项目中。 当它在模拟器中运行时,Xcode知道如何找到.png文件,因为它与.TMX文件位于同一文件夹中。 将tile set .png添加到Xcode项目后,它在设备上也能正常工作。

相关问题