Questions tagged «hexagonal-grid»

使用规则六边形进行网格拼贴的表面的规则镶嵌。

2
如何在六角形网格上旋转六角形瓷砖的结构?
我的2D等距游戏使用六角形网格图。参考下图,如何将浅蓝色六边形结构围绕粉红色六边形旋转60度? 编辑: 主十六进制是(0,0)。其他十六进制是孩子,他们的数目是固定的。我将只定义一个位置(在本例中为右),并根据需要计算其他方向(左底,右底,右上,左上和左)。其他十六进制定义为:Package.Add(-1,0),Package.Add(-2,0),依此类推。 switch(Direction) { case DirRightDown: if(Number.Y % 2 && Point.X % 2) Number.X += 1; Number.Y += Point.X + Point.Y / 2; Number.X += Point.X / 2 - Point.Y / 1.5; break; } 在这段代码中,Number是主要的十六进制,Point也是我要旋转的十六进制,但是它不起作用:

6
如何在基于数组的十六进制贴图上获取像素到十六进制的坐标?
我正在尝试使一个像素能够协调十六进制贴图的功能,但是我没有正确地获得数学运算,我尝试的所有内容似乎都有些偏离,并且我发现的示例均基于以圆心为中心的贴图。 “基于数组”是指十六进制的排序方式,请参见图片。 我得到的最准确的结果是使用以下代码,但是仍然不可用,并且值增加的越多越糟: public HexCell<T> coordsToHexCell(float x, float y){ final float size = this.size; // cell size float q = (float) ((1f/3f* Math.sqrt(3) * x - 1f/3f * y) / size); float r = 2f/3f * y / size; return getHexCell((int) r, (int) q); } 屏幕从左上角的0,0开始,每个单元格都知道其中心。 我需要的是一种将屏幕坐标转换为十六进制坐标的方法。我该怎么办?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.