创建平铺地图并在visual studio项目中使用

时间:2015-01-28 10:27:41

标签: visual-studio-2012 cocos2d-x

如果我通过Tiled SW创建一个tile map并包含在我的visual studio项目中,那么当我使用模拟器运行项目时它会崩溃。 cocos2d提供的一些tmx文件在我的示例中运行正常,而有些文件无法正常工作。如果我通过Tiled SW创建一个简单的地图并在我的项目中包含tmx和png它永远不会工作。只是想知道我的地图是否已损坏(使用最新的Tiled创建了Windows 8)。始终出现以下错误。 enter image description here

任何提示?

更新更多信息:

调用堆栈:

  

libcocos2d.dll!cocos2d :: CCTexture2D :: hasPremultipliedAlpha()第173行C ++       libcocos2d.dll!cocos2d :: CCSpriteBatchNode :: updateBlendFunc()第668行C ++       libcocos2d.dll!cocos2d :: CCSpriteBatchNode :: initWithTexture(cocos2d :: CCTexture2D * tex,unsigned int capacity)第90行C ++       libcocos2d.dll!cocos2d :: CCTMXLayer :: initWithTilesetInfo(cocos2d :: CCTMXTilesetInfo * tilesetInfo,cocos2d :: CCTMXLayerInfo * layerInfo,cocos2d :: CCTMXMapInfo * mapInfo)第65行C ++       libcocos2d.dll!cocos2d :: CCTMXLayer :: create(cocos2d :: CCTMXTilesetInfo * tilesetInfo,cocos2d :: CCTMXLayerInfo * layerInfo,cocos2d :: CCTMXMapInfo * mapInfo)第45行C ++       libcocos2d.dll!cocos2d :: CCTMXTiledMap :: parseLayer(cocos2d :: CCTMXLayerInfo * layerInfo,cocos2d :: CCTMXMapInfo * mapInfo)第133行C ++       libcocos2d.dll!cocos2d :: CCTMXTiledMap :: buildWithMapInfo(cocos2d :: CCTMXMapInfo * mapInfo)第217行C ++       libcocos2d.dll!cocos2d :: CCTMXTiledMap :: initWithTMXFile(const char * tmxFile)第75行C ++       ShootingCar.exe!HelloWorld :: init()第59行C ++       ShootingCar.exe!HelloWorld :: create()第28行C ++       ShootingCar.exe!HelloWorld :: scene()第26行C ++       ShootingCar.exe!AppDelegate :: applicationDidFinishLaunching()第52行C ++       libcocos2d.dll!cocos2d :: CCApplication :: run()第71行C ++       ShootingCar.exe!ShootingCar :: [Windows :: ApplicationModel :: Core :: IFrameworkView] :: Run()第69行C ++       [外部代码]       [下面的框架可能不正确和/或缺失,没有为AppModelCore.dll加载符号]

致电代码:

_tileMap = new CCTMXTiledMap();
_tileMap->initWithTMXFile("untitled.tmx");
addChild(_tileMap); 

发生崩溃:

bool CCTexture2D::hasPremultipliedAlpha()
{
    return m_bHasPremultipliedAlpha;
}

就像我提到的一些tmx文件在这个例子中工作得很好(我只是包含并使用这些文件)。但是因为我的tmx文件永远不会有效,所以总是崩溃。 我注意到一些tmx文件也崩溃了(我的一个(cocos2d包中的一些)

1 个答案:

答案 0 :(得分:1)

嗯!经过一番试验和错误,我注意到以下原因是根本原因。 如果选定的tile(png文件)与保存tmx文件的目录不同,则Tiled SW会在XML文件中添加相对路径。相对路径转到资源,这会导致问题。 在我的情况下,XML文件包含以下内容:<image source="../TileGame/TileGame/Resources/TileGameResources/tmw_desert_spacing.png" width="265" height="199"/>

绘制地图时,png文件应该在同一个文件夹中,或者以后可以通过删除相对路径来编辑XML文件。