如何使用户友好的极坐标绕圆运动?


23

我正在做一个2D游戏,您可以用船降落在行星上,并且可以退出船并四处走动。

这些行星非常小(有时会想到约350像素半径),并且是从侧面看的。因此,您可以轻松地在屏幕上大致看到整个星球。

这可能有点令人困惑,所以这是一张图片: 太空游戏

我使用A和D键分别逆时针和顺时针移动。问题在于,如果您位于行星的“顶部”(上半部分),这是有道理的:A向左移动,D向右移动。但是,如果您位于行星的“底部”(底部一半),则A向右移动,D向左移动。

关于如何使它变得更加用户友好的任何想法?


21
您是否问过用户是否感到困惑?我当然不会- 从角色的角度来看,您按向右可向右移动角色,向左移动可向左移动角色。这比在转弯中更改按钮(如果您打算这样做)要好得多。
Charanor

Answers:


38

我的第一个建议是坚持A=逆时针方向和D=顺时针方向运动。对于这样的轨道运动,它不是很混乱,几乎是“标准”(即最常见)的选择。

另一种方法是更改​​游戏的移动方式。与其在星球上移动播放器,不如说是旋转星球。这也是一个很常见的选择,但是如果屏幕上有多个行星,可能会迷失方向,因为除播放器外,所有物体都必须旋转。如果决定使用此方法,则可能仅显示行星的一部分以减少您的眼睛必须跟踪的移动物体的数量:

仅行星的上半部分

如果您可以自由使用鼠标,则可以始终使用鼠标单击来移动。单击某个位置将使玩家朝该点移动,并且它将自动选择最短的方向。圆圈是“点击”,箭头是最短的方向。

最短的点击方向

作为额外的好处,如果您也希望将游戏发布为应用程序,则也很容易转换为Mobile控件。


3
如果要跟着摄像机运动,我建议使它稍微落后一些,如果您想强调前进的方向和速度。您的角色会朝您的移动方向倾斜5或10度。
satibel

16

当角色离开飞船时,重新调整视图的方向,使角色位于星球上方,然后在角色走动时随角色移动视图。这样,在行星上时角色始终相对于视图位于最上方,因此无论您在何处着陆,左/右控件都可以保持一致。


3
如果您不小心,这可能会令人迷惑。
Beefster

11

一种方法(通常在带有摇杆动作的第三人称游戏中也使用非静态照相机)是每次输入开始时(对于您的情况,当按键被按下时)建立动作的参考系并保持直到输入终止(释放键)为止。这意味着“ A”键始终会将字符“向左”移动,无论该字符是什么(如果它在圆圈的底部,则顺时针方向;否则,则为逆时针方向),直到释放该键。

不幸的是,由于您被限制在一个圆上,因此当角色处于或靠近圆的最左或最右范围时,此技术仍将消失。您可以通过任意选择进入哪个方向来简单地使其工作,但是用户可能会感到困惑。可能更令人困惑的是,仅坚持现有的现有“ A总是逆时针”方法。


6
在圆的右侧时,S应该顺时针移动。
user253751 '18

1
我没有想到这一点,因为OP仅提到了两个键,但这是一个好主意。
乔什

1
考虑模拟摇杆控制也很重要,在这种控制模型感觉最佳的地方。
Beefster

10

我建议您看一下类似的概念,然后在3d中看:超级马里奥星系。

超级马里奥星系截图 https://youtu.be/_8eJC4gIAm4?t=19m

在短暂的运动中,参考系保持不变,宇宙不动,超过一定的阈值,宇宙沿着/移动,因此参考系回到中间。

您可能希望在移动时“模糊运动”整个宇宙,使它看起来更自然,并且眼睛不会将注意力集中在移动部件移动的位置上。

我认为任天堂投入了很多研究,以使游戏尽可能流畅,而这正是他们所基于的。我一直喜欢看大型公司的想法,希望他们在研发方面投入一些资金,以最大程度地提高舒适性和可玩性。


7

使用A/ D将角色分别朝着行星的最左/最右点的方向移动,并使用W/ S将角色朝最上/最底的点移动。

这样,玩家总是在与输入动作相同的方向上移动角色 -例如,无论角色的位置如何DS总是向右移动,总是向下移动。

在按住键的同时,游戏可以继续沿相同的时钟方向前进,或者将角色停止在限制点上。如果停止,这似乎不是一个大问题-玩家拥有一个完整的象限,如果他们想保持相同的时钟方向,可以更改其输入。

另外,圆形的W- A- S- DW- D- S- A在行星,这似乎相当直观的环游的输入结果的图形。

按住多个键只会导致最近按下的键优先,或者您可以使用更复杂的行为,例如具有八个限制点。


1
这是我在玩“ 超级马里奥奥德赛”后的建议。然而,由于在控制方案的改变-这起初不是很直观。如果这是您的主要控制方案,那么可能就不会有问题了
Kaiged '18

3

这是许多游戏遇到的两个经典“心理模型”问题之一。

每个玩家都会为游戏控制如何映射到游戏动作开发一个“心理模型”。随着游戏随着时间的流逝越来越相似,人们开始期望他们建立的思维模型可以应用于新游戏,而不是为单独的游戏开发单独的模型。这样做会很好,除非不是每个玩家都对控件的工作方式有相同的思维模式。

例如,另一个经典的“心理模型”问题是按下操纵杆(通常是游戏手柄的正确模拟杆)是否意味着向上看,或者意味着向前倾斜(即向下看)。两种模型都不是正确的,但是大多数玩家只能将这两种可能的映射中的一种保留在脑海中,如果游戏所做的事情与他们个人期望的有所不同,则会被抛弃。

您的难题完全相同。这里的“心理模型”问题是在操纵杆上向右推动是“向角色的右侧移动”(如《生化危机》),还是“向屏幕右侧移动”(如在Mario中)。或在这种情况下,“顺时针移动”(如在Tempest中一样,当使用从拨杆到操纵杆控件的传统转换时)。

每个玩家都将拥有一个习惯于使用的内置模型,因此他们不愿意更改(或很难更改)。在任何此类“心理模型”问题中,您都有三种方法来处理该问题:

  1. 作为开发人员,您可以选择哪种模型最适合您的游戏,然后使用它。忽略那些对您选择的模型有疑问的人的抱怨;他们只需要适应。而且,如果您的游戏足够吸引人,他们会的。
  2. 实施两种可能的模型,并让玩家选择他们要使用的模型。
  3. 重新设计游戏,以确保无论控件使用的是哪种心理模型,控件->游戏动作的映射都保持不变。

选项3(“重新设计游戏,以使心智模型不会彼此冲突”)在这种情况下将意味着与玩家一起旋转摄像机,因此玩家始终会竖立在屏幕上。这样,“向右意味着顺时针旋转”和“向右意味着向屏幕右侧移动”始终保持对齐;不再有冲突,玩家也不会因控制方式的思维模式而感到困惑。

选项2将意味着同时实现两种控制方式。一种是向右推将您带到屏幕右侧,另一种是向右推将您带到顺时针方向,还有一个选项屏幕,玩家可以在其中选择他们想使用的控件样式。

这里的任何选择都是有效的;不同的选项仅需要不同的工作量,并在您的游戏中施加不同的约束。如果出于主题或艺术原因,让玩家可见在行星的“底部”移动对于您来说确实很重要,那么您就不想使用选项3,而应该使用1或2。否,那么选项3可能是理想的选择。

关于“将操纵杆向右推意味着向屏幕右侧移动”控件样式的一个较小的实现注意事项:实施此控件样式时,应通过将操纵杆方向映射为顺时针/逆时针方向选择,然后保持相同的顺时针/逆时针方向的决定,直到操纵杆再次移动为止,即使玩家移动到行星的底部。也就是说,在星球顶上向右按下,或者在星球右侧向下按下,每个角色都会开始顺时针方向移动,然后角色将继续顺时针方向移动,甚至绕着行星底部,直到玩家移动为止即使操纵杆移到了行星的某个部分,该操纵杆的方向现在也将被解释为另一个方向。

这种技术通常称为“锁定”操纵杆控件,通常用于3D游戏中,当相机突然旋转(您不想让玩家突然改变方向)时,但在以下情况下也很有用在2D游戏中,如果摄像机移动否则会使玩家的未修改输入突然变得与以前有所不同。


1
用两根手指在笔记本电脑的触摸板上向下滑动是向上滚动还是向下滚动?如果我使用的是移动设备,它将向上(因为我的手指和页面已“连接”),但是鼠标的同一个方向会向下...我每次使用Mac时都会断开连接...
Draco18s

@ Draco18s这是另一个很好的例子!Windows认为向下滚动输入意味着在文档中向下,而Apple认为向下滚动输入意味着将文档本身向下移动(这意味着我们看到的更多内容朝向文档顶部)。但是在台式机操作系统上,苹果公司知道很多人对于滚动输入的工作方式有另一种思维模式,因此他们既实现了滚动输入,又让每个用户选择自己喜欢的方式。
特雷弗·鲍威尔

是的,您可以更改它,我知道有很多人默认设置它(“向下移动文档”)。哎呀,我一个月前上班Windows笔记本电脑是默认设置。我很快就将其关闭(我改为打开了“边缘滚动”功能,但我认为我会再次将其关闭,因为它太慢了:说真的,滚动区域的整个高度在滚动……五行。 ...)
Draco18s

2

使用W / S / A / D作为输入(或上/下/左/右)。将输入视为8向方向(包括对角线)。

然后,以最接近所按方向的有效方向(顺时针或逆时针)移动播放器。


我认为该解决方案比操纵杆更适合于键盘,但它仍然是可行的解决方案,但是我可以选择,因为如果要玩,必须在wasd上将手指移动一圈会很困难一个多小时。
satibel

2

一种选择是代替定义键和移动方向之间的关联,使具有:

  • 一键“向前”移动(沿当前选择方向)
  • 一键“转身”(切换方向)

这要求角色具有清晰可见的“方向”。

不确定是否真的比这里的其他选项有意义,但以防万一。


1

向下是重力所在。因此,当玩家角色位于行星上时,请随着玩家角色的移动一起旋转摄像机,以使角色始终位于该行星的顶部。

但这虽然使在行星上的导航更加容易,但可能会使玩家相对于其他天体失去方向感。这是一个权衡,您需要自己决定。


1

如果您选择使用顺时针/逆时针运动,则可以做很多事情来使系统更容易为玩家所用。

给角色突出的明显方向

如果角色是一半蓝色和一半红色,则方向变得容易让玩家记住。玩家不必识别“顺时针”或“逆时针”,而是沿蓝色方向或红色方向移动。如果角色始终朝着一个方向(最好是顺时针方向,以便在直立的同时动作最为直观),那就更好了,因为讲英语的人(以及其他使用从左到右语言的人)自然倾向于将“正确”与“前进”,加强了控件与运动方向之间的联系。

永远不要让角色停止移动

只要您移动角色,就很容易保持控件的方向。毕竟,继续朝着您所向的方向移动完全不会采取任何措施,并且在您想要反转方向时,只有另一个键可供选择。只有停止后再次开始移动时,您才有选择的余地。暂停时间越长,根据您之前的操作再次进行拾取的难度就越大。通过减少暂停频率和暂停时间,可以使玩家避免忘记移动的方式。


0

有多种解决方法。

1)我将如何处理这个问题,这将涉及到行星的各个部分:顶,左,右和底边(如果需要的话,更多)。因此,在用户按下方向后,角色将一直沿该方向前进,直到他们释放该按钮为止。因此,如果角色在左侧且用户按下,则角色将顺时针旋转直到释放。这样,您就不必担心角色移动时参考系中的变化,只需要稍后。

2)另一种方式是“危险时空的恋人”如何处理它。使用操纵杆,而不是使参照系取决于表面,而是使用操纵杆,因此操纵杆的角度是“角色”停在其上的理想位置。因此,他们的参照系位于他们“行星”的中心。我说的是人物和星球,但是它们在外部决定了它们去向的外部,即模块化的船舶零件,即,推进器指向哪个方向来移动船。

3)您现在的设计方式。它也可以得到一点使用,但是以前没有玩家见过。不过,您可以对其进行编辑,以使它看起来好像是行星在旋转,因此播放总是在“顶部”。

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.