0

每当我将 tilemap 添加到我的 Cocos2d 项目时,我要么收到错误消息,要么幸运地至少实现了黑屏而不会导致应用程序崩溃。Xcode 返回的错误是:

rect.origin.x = (gid % max_x) * (tileSize_.width + spacing_) + margin_;

日志返回

2012-07-30 22:40:29.237 Tile Map Game[8233:c07] cocos2d: Couldn't add image:Xcode/Game Development/Tilesets/Desert_Tileset.png in CCTextureCache

最后但并非最不重要的是我的代码

-(id) init
 {
     if( (self=[super init] )) {

         self.tileMap = [CCTMXTiledMap tiledMapWithTMXFile:@"DesertMap.tmx"];
         self.backgroundLayer = [tileMap layerNamed:@"Background"];

         [self addChild:tileMap z:-1];

      }
     return self;
 }

 - (void) dealloc {

     self.tileMap = nil;
     self.backgroundLayer = nil;

     [super dealloc];
 }

这里发生了什么?我已经尝试了很多tileset首选项,例如从0到1的边距间距,但仍然没有运气。

4

2 回答 2

1

保存在 TMX 文件中的图像使用相对路径:

Xcode/Game Development/Tilesets/Desert_Tileset.png

此路径通常不存在于您的 iOS 项目中,因为 app bundle 会展平所有文件夹,以便所有文件都位于 app bundle 中的同一路径中。

在编辑和将它们添加到项目时,您应该将您的 tileset 文件与 TMX 文件放在同一个文件夹中。

在这种情况下,您可能需要在 Tiled 中删除并重新添加图块集,或者只需编辑 TMX 文件(在此之前在 Tiled 中将其关闭)并删除图块集的路径。尤其是如果您已经向瓦片集添加了属性,这将是更简单的选择,因为您不必重新编辑瓦片集(瓦片)属性。

于 2012-07-31T10:03:23.927 回答
0

将 Desert_Tileset.png 图像添加到您的资源中。我像这样解决了我的错误。

于 2012-11-21T05:37:16.620 回答