如何在OpenGL中递归地绘制六边形地图?

3

我刚接触GL,想要创建一个瓷砖地图作为自学教程。我想创建一个小的(可能是7个六边形宽/高)六边形地图。我的第一个想法是只创建一个绘制一个六边形的方法,然后将适当的偏移量进行平移并放置新的六边形。但这似乎不太有效率。有什么想法吗?另外一个问题是,如何确定MotionEvent是否在给定六边形的区域内?

2个回答


2
要确定MotionEvent是否在某个六边形内,您需要将通过MotionEvent传递的坐标转换为OpenGL世界坐标。这就像单位转换一样,您知道屏幕从0到WIDTH,而您的GL世界从-1到1。
(xCoord / (Width - 0)) * (1 - (-1)) = xCoordWorld
将为您提供从0到2的xCoord,然后减去1以使其在-1到1之间。
至于六边形,我一直使用“艺术”六边形。在绘画中绘制六边形,然后渲染一堆带有该艺术品的正方形,可以快速轻松地将一个六边形替换为另一个六边形。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接