我可以通过探索更多的地图来防止对angular线移动吗?

在8个方向中的任何一个方向上的运动完全相同(棋盘式规则)的瓷砖网格中,我可以防止对angular线运动显示比正交运动更多的新砖吗?

例如:您是下图中的红色框。 绿色细胞目前可见(方形视野)。 您可以在八个方向中的任何一个方向上移动一个方块的距离。

如果您向东北移动,您将探索13个新的瓷砖(以蓝色显示)。 如果您改为向南移动,则只能浏览7个新的贴图(以紫色显示)。

网格的可见性依赖于位置

我怎样才能使每个方向的旅游同样有利于探索?

龙与地下城3.5(纸和RPG)有一个解决scheme用于移动和基于网格的半径计算:对angular线移动成本1.5正交成本。 由于单位平方的对angular线大约是1.414,因此1.5非常接近。

由于D&D 3.5只支持整数运动,实际计算的方式是正交运动花费“一个方块”。 你的第一个对angular线运动也只花费“一个方块”,但第二个对angular线花费“两个方块”。 您为每个对angular线移动交替一个和两个方块。 在游戏中实现这个运动规则将会处理对angular线运动的几个问题。

如图所示,这个运动规则创build了一个合理的圆的近似值,并且与真实距离(在15个单位内)相比,也不会超过1。

在这里输入图像描述

如果你的视觉/探索半径也是这样计算的,那么对angular线运动和对angular线发现将近似于正交的。

您需要更改视野的形状。

所以,当你向任何方向移动时,相同数量的新方块变得可见。

这是一个可能性:

网格示例http://i57.tinypic.com/2yugkza.jpg

要有对angular线和正交运动显示大致相同的面积,您需要件事(其中每一件都已经在另一个答案或评论中被提出):

  1. 大致圆形的视野范围

    伪圆形视图范围的图像

    就其本身而言,这两种types的运动都不会给出完全相同的显示区域。 例如,在上面的图片中,正交运动显示9个正方形,而对angular线运动显示13个。尽pipe如此,仍然比在您的示例中的正方形视图区域的13/7更好。

    事实上,随着视angular半径的增大,每对angular线/正交步的显露面积的比例趋向于大约为2。 圆形面积为1.414,而方形面积的比例趋于2。

  2. 较慢的对angular线运动

    在现实生活中,在一个方形的场地上斜行走需要比沿着一边行走更长的时间。 事实上,这大约需要2年左右。 再延长1.414倍。 如果你想让游戏中的动作感觉真实,那么你也应该在游戏中做到这一点。

    在实践中,3/2 = 1.5是一个很好的近似值√2。 因此,您可以使每个正交步骤采取两个时间单位,并使每个对angular步骤需要三个。 在上面的示例视图区域中,对于正交移动,这产生了每时间单位9/2 = 4.5个显示的正方形,而对于对angular线移动,每个时间单位显示了13/3 = 4.33个正方形。 很近,呃?

    另外,如果你想坚持“1步= 1时间单位”的正交运动,你可以使用类似丹尼build议的D&D系统 ,并使每一个对angular步骤消耗额外的回合。 (但是,如果你这样做的话,你需要给每个单位一个明确的计数,说明他们已经采取了多less对angular线的步骤,否则最终可能会出现像E,NE,E,NE这样的漏洞攻击。 。移动序列允许玩家比预期更快地探索。)

由于您正在使用网格并知道用户正在进行哪个方向,所以根据方向的不同,您无法适应先前的答案并使用不同的视野。

例如,您可以扩展该领域,使其包含angular落,当您在基本方向行进时,将其缩小到对angular线的每个端点上的两个方格,从而每个方格显示9个方格。

另一种select取决于你的照明如何工作,将使用抗锯齿更好的圆近似来部分揭示一些正方形。

怎么样,而不是有一个固定的观看范围,玩家的可视区域取决于玩家面对的方向以及玩家在最后几圈所面临的方向(一个向北移动的玩家可能能够立即向南走一步,但可能需要几圈才能在该方向上获得最大的观看距离)。 一个从狭窄的走廊往北走进一个大房间继续向北行驶的玩家,东西方的能见度有限,可能应该是这样。 当玩家停止移动时,系统可以自动“探索”在玩家当前视野范围内的未看见的区域,但是当玩家正在主动移动时,视野应该更加狭窄。

作为一个更复杂的视野的替代(正如上面讨论的,由于基于网格布局的限制而增加了自己的问题),你可以尝试模拟游戏中的运动效果,而不是基于谨慎格。 在可以自由移动的地方,一个单位的对angular线移动就是正方形,而不是正方形的1.41个移动单位。

虽然你不能强制单个单位移动而不会失去你的descreet网格(这会改变你的游戏devise相当显着),也许你可以跟踪多余的移动和稍后的移动:追踪多余的0.41s,一旦他们总共更多1.00有该单位跳过一个移动。 或者相反:考虑对angular线是正常的,为每一个水平或垂直移动加起来0.41s,并且一旦大于1(或者对angular线移动为1.41)给予额外的移动信用。

您需要小心如何以一种使其看起来既平滑又公平的方式呈现给玩家。 在一个多人玩家的场景中,这种变化可能成为玩家在策略上利用的东西 – 这可能是一个问题,或者可能有一种自然的方式将其与游戏机制混合(也许允许玩家存储一个小的他们可以使用的“未使用的移动信用”的数量在以后快速反应,并有额外0.41s的移动馈入(或取出)该池。

如果玩家控制实体每移动一个单位,这个效果就会最好。 例如,三个移动点可以用作三个水平移动,或者两个对angular线移动点,在游泳池中剩下0.16个用于稍后。 一旦达到1.00,玩家将获得一个“自由”的动作,而在1.41处则是一个自由的对angular线。 你可以在1.5的时候加上额外的力量来强制它在这个时候被使用或者失去,从而阻止玩家把这个存储的能量保存下来或者让它累积起来。

很明显,这对于你的游戏规则来说可能是一个复杂的问题,而这对于一个非电脑化的游戏来说是不切实际的,但是如果你可以在游戏现有的规则下运作,它将限制运动方向之间的探索差异,而不需要放弃网格格式。

如果玩家向上,向下,向左或向右移动,而且只能对angular移动一个,则可以让玩家移动两个空格。 它不会完全平息,但会更接近。