当前位置:编程学习 > JAVA >>

Bug in tiled map extension of AndEngine

异常场景

异常产生原因
地图画布未填充的小方格, TMXLayer的addTileByGlobalTileID无法获取GlobalID,从而无法获取纹理方格,因此报出Null Pointer异常。

解决办法
修改 org.andengine.extension.tmx.TMXLayer类中addTileByGlobalTileID方法
[java] view plaincopy
if(pGlobalTileID == 0) { 
    tmxTileTextureRegion = null; 
} else { 
    tmxTileTextureRegion = tmxTiledMap.getTextureRegionFromGlobalTileID(pGlobalTileID); 

修改为
[java] view plaincopy
if(pGlobalTileID == 0) { 
    tmxTileTextureRegion = tmxTiledMap.getTextureRegionFromGlobalTileID(1); 
}else{ 
    tmxTileTextureRegion = tmxTiledMap.getTextureRegionFromGlobalTileID(pGlobalTileID); 

[java] view plaincopy
this.drawWithoutChecks(tmxTileTextureRegion, tmxTile.getTileX(), tmxTile.getTileY(), tileWidth, tileHeight, Color.WHITE_ABGR_PACKED_FLOAT); 
修改为
[java] view plaincopy
if(pGlobalTileID != 0){ 
    this.drawWithoutChecks(tmxTileTextureRegion, tmxTile.getTileX(), tmxTile.getTileY(), tileWidth, tileHeight, Color.WHITE_ABGR_PACKED_FLOAT); 

补充:软件开发 , Java ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,