2

我正在尝试创建一个六边形地图,如下所示:

http://files.slembcke.net/misc/procedural/hex_tiles.png

但是我的函数将列表中的图块 X(row) 和 Y(column) 索引转换为屏幕位置时遇到了一些问题:

        public static Vector2 GetDisplayCoordOfTile(GameTile t, Texture2D texture)
        {
            Vector2 screenPadding = new Vector2(2, 2);

            float ypos = (t.Column * (texture.Height + 2)) - (t.Row * texture.Height / (float)2) + screenPadding.Y;
            float xpos = (t.Row * (texture.Width)) + screenPadding.X;

            return new Vector2(xpos, ypos);
        }

有没有人知道事情在哪里变得混乱,我不能让我的想法围绕这个想法,因为坐标系与常规数组中的思考不同

4

1 回答 1

0

这里有一个很棒的关于如何绘制六边形地图的教程: http ://www.xnaresources.com/default.asp?page=Tutorial:TileEngineSeries:3

此外,您可能会在此处获得更多帮助,询问您的游戏开发相关问题:https ://gamedev.stackexchange.com/

于 2013-03-30T20:28:36.640 回答