关于网格

这篇博客深入探讨了网格系统,从正方形、六边形到三角形的结构,及其在游戏和地图中的应用。内容涵盖了网格的基本组成部分、坐标系、坐标转换算法,以及在不同网格间的转换。此外,还讨论了在不同网格中计算面、边和顶点数量的方法,为游戏开发者和算法设计者提供了有价值的概念和算法。
摘要由CSDN通过智能技术生成

 

网格通常用于游戏中,用于表示游戏区域,如地图(在“文明”和“魔兽”等游戏中),游戏界面(如游泳池,乒乓球和扑克等游戏),运动场(棒球和足球等游戏),棋盘(在象棋,Monopoly和Connect Four等游戏中,以及抽象空间(在俄罗斯方块之类的游戏中)。我试图在这些页面上收集我对网格的看法。我避免实现细节(例如源代码),而是专注于概念和算法。我主要使用网格来表示战略和模拟游戏中的地图。虽然这里的许多概念对各种网格都很有用,但我对这些游戏感兴趣。

网格由重复的简单形状构成。下文将覆盖以下内容:正方形、六边形和三角形顶点、边和面(平铺的瓦片),坐标系,以及使用网格的算法。

心急的读者可以直接跳到坐标系。还有一个六边形网格指南,那里有更多的特定于六边形的算法。

正方形

最常见的网格是方形网格。它简单易用,可以很好地映射到计算机屏幕上。

位置可以使用熟悉的笛卡尔坐标(x,y),轴是正交的。即使您的地图方块在等轴测图或轴测投影中在屏幕上成角度,方形坐标系也是相同的。

六边形

六边形已经在一些电路板和计算机游戏中使用,因为它们提供的距离失真比方形网格少。这部分是因为每个六边形具有比正方形更多的非对角线邻居。(对角线扭曲了网格距离。)

六角形在自然中存在(蜂窝)并且具有令人愉悦的外观。在本文中,我将使用具有平顶和尖边的六边形,但如果你想要尖顶和平边,数学运算是相同的。

还有一个更全面的指南,涵盖偏移坐标,轴坐标,立方坐标,尖顶,平顶和更多算法。

三角形

三角形在3d图形中很常见,但很少用于游戏地图。

它的一大缺点是周长大且面积小(与六边形相反)。小区域意味着将游戏块完全放置在地图上的单个空间内更加困难。

在三维图形中,三角形是唯一的平面形状;正方形和六边形有时可以“弯曲”,有时不可以。

在本文中,我将使用向上和向下指向的三角形,但如果您的三角形指向左右,数学运算也是相同的。

网格部分

网格有三种类型的零件:面(平铺的瓦片)、边和顶点。

每个面都是由边缘包围的二维平面;每个边是一个以两个顶点结束的一维线段;每个顶点都是零维点。

游戏通常只关注这些类型的部分中的一种。

像Chess和Checkers这样的“西方”游戏似乎专注于面,像Go和中国跳棋这样的“东方”游戏似乎专注于顶点。像轮盘赌这样的游戏为所有三种类型的网格部分赋予了意义。

 

面、边和顶点也显示在多边形地图中。

在不需要网格坐标的情况下处理面,边和顶点的算法将适用于这些多边形贴图:

通过将每个面转换为节点,并将面之间的边转换为连接节点的边,可以转换为图的结构,可以使用图论的算法(例如最短路径)。

格图上使用图算法(例如最短路径)。

在游戏中使用

电脑游戏可以使用所有三种网格的零件,但面是最常见的。

建筑物,土地类型(草地,沙漠,砾石等)和领土所有可以使用面。

区域边界和“流动”算法(模拟相邻面之间的水流,人员,货物等)可以使用边。

高度(海拔高度,水深)使用顶点。

道路和铁路可以使用面(如在SimCity中)或边(如Locomotion,请参阅Java小程序演示此内容)。

零件计数

我们可以计算生成网格需要多少面、边和顶点。方法是考虑邻接和共享。

         

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值