首页 > 其他 > 详细

cocos2d-x 错误总结(持续更新)

时间:2014-03-04 03:48:31      阅读:365      评论:0      收藏:0      [点我收藏+]

记录自己学习cocos2d-x路上遇到的种种问题及其解决办法。持续更新。



一.断言 TMX: Only 1 tileset per layer is supported 崩溃:

这个错误发生在我使用tiledmap的时候,其中,tiledmap里面编辑好的地图在同一个层(layer)使用了多个图块。

加载地图时弹出断言失败窗口,跟踪进去发现崩毁地点:

CCAssert( m_uMaxGID >= m_pTileSet->m_uFirstGid &&
    m_uMinGID >= m_pTileSet->m_uFirstGid, "TMX: Only 1 tileset per layer is supported");

从断言中的提示就可以看出:一张图层上只支持一个一个图块集合
就是说编辑器中的每一层只能使用一个图块集合中的图块,不能使用其他图块集合中的图块!

解决办法:(一)将多个图块绘制在同一个图块上使用。  (二)放弃其他图块,使用专一图块。


二.tileGIDAt返回数据异常:

我们用tileGIDAt获取某一层上的某一格对应的图块ID,GID是什么呢?可以理解为全局唯一ID,而我们的图块集合可能会有多个,所以每个的图块的ID不是从该图块集合1,2,3…这样的,而是紧接着上一个图块集合的最后一个ID顺序下来的!

所以我们要获得正确的ID,应该:

cocos2d::CCTMXLayer *towerLayer = map->layerNamed("tower");
cocos2d::CCTMXTilesetInfo *towerSet = towerLayer->getTileSet();
int nGid = towerLayer->tileGIDAt(ccp(0, 0)) - towerSet->m_uFirstGid;
if(nGid >= 0)
{
}

先获取这一层对应的图块集合的首ID,然后相减就获得了正确的ID.



学习的路上,与君共勉。

cocos2d-x 错误总结(持续更新),布布扣,bubuko.com

cocos2d-x 错误总结(持续更新)

原文:http://blog.csdn.net/hitwhylz/article/details/20382351

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!