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 ,