java - 计算六边形图libgdx的大小
问题描述
我有一个使用“平铺”地图编辑器创建的交错六边形地图,我想计算这张地图的高度(以像素为单位),下面的示例地图应该MAP_WIDTH_IN_PX = 1056
是MAP_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;
解决方案
只需检查列中的偶数和奇数个瓷砖,其中一半占用瓷砖高度空间和一半瓷砖宽度空间。如果是奇数,请处理最后一个。
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;
推荐阅读
- javascript - 在 Javascript 中使用 clearInterval 后重新启动 setInterval
- angular - 用户选择某些文件或取消它后,如何以角度捕获文件对话框关闭事件?谢谢你
- node.js - POST API 数据不保存在 mongodb
- angular - Angular 中的笑话;我应该使用 nativeElement 还是 debugElement?
- java - 从 Java 代码中的 start.sh 文件中使变量不区分大小写
- r - 将嵌套循环的结果获取到数据帧列表中
- python-3.x - 如何将列表拆分为numpy数组?
- flask - 自定义 Marshmallow URLFor 中使用的 ID
- javascript - 如何在 Meteor.methods 中使用 jest 测试块
- ruby-on-rails - Rails - Mongoid:生产和开发之间的缓慢问题