首页 > 解决方案 > 计算六边形图libgdx的大小

问题描述

我有一个使用“平铺”地图编辑器创建的交错六边形地图,我想计算这张地图的高度(以像素为单位),下面的示例地图应该MAP_WIDTH_IN_PX = 1056MAP_HEIGHT_IN_PX = 303;

在此处输入图像描述

MAP_WIDTH = map.getProperties().get("width",Integer.class); //16 tiles
MAP_HEIGHT = map.getProperties().get("height",Integer.class); //5 tiles
TILE_WIDTH = map.getProperties().get("tilewidth",Integer.class); //64px
TILE_HEIGHT = map.getProperties().get("tileheight",Integer.class); //84px
TILE_SIDE_LENGTH = 27; //this value is set in the map editor


MAP_HEIGHT_IN_PX = ?;
MAP_WIDTH_IN_PX = MAP_WIDTH * TILE_WIDTH + TILE_WIDTH * 0.5f;

标签: javalibgdx

解决方案


只需检查列中的偶数和奇数个瓷砖,其中一半占用瓷砖高度空间和一半瓷砖宽度空间。如果是奇数,请处理最后一个。

if (MAP_HEIGHT%2==0) 
  MAP_HEIGHT_IN_PX = MAP_HEIGHT/2*TILE_SIDE_LENGTH+MAP_HEIGHT/2*TILE_HEIGHT;
else 
  MAP_HEIGHT_IN_PX = (MAP_HEIGHT-1)/2*TILE_SIDE_LENGTH+(MAP_HEIGHT+1)/2*TILE_HEIGHT;

推荐阅读