如何处理3D空间中的RTS单击和移动?


10

如何在完整的3D空间中处理单击和移动?通过简单的射线广播很容易在2D平面上进行处理,但是在3D中却不是这种情况,因为没有用于射线广播的端点可以获取端点。

我有两个想法:

  1. 进行光线投射,然后允许玩家通过其他输入(例如,缪斯赫尔)来选择光线的距离。
  2. 而不是完整的3D,而是具有多个“高度层”,因此玩家可以在命令移动之前更改高度层。

你怎么看?

Answers:


4

分两步运动是一种过时的方法。

鼠标在水平面的移动。垂直平面的鼠标滚轮。

Homeworld做得很好,但鼠标滚轮尚未广泛部署,因此他们不赞成这样做。

您仍然可以使用修改键在模式之间切换鼠标的移动,但是可以同时移动鼠标和滚动,因此这是最有效的硬件方法。在家庭世界中,您要依次设置飞机,这会使您减速。更何况您只是在移动到空白处而放慢了速度。移动到对象会自动移动轨迹。

同时执行此操作的其他方法是用键盘上的两只手或双操纵杆控件。

如果您的运动流畅性取决于速度,那么做下去和过度踩踏可能会扼杀您的运动。Homeworld符合其系统的要求,因为您在发出移动订单时浪费了额外的一两秒都无所谓,并且您可以确定他们在构建起搏速度时会考虑这一因素。

PS缩放位置:

如果缩放不是中心机制,则无需保持缩放尽可能稳固即可将其卸载。

以与原始“黑白”游戏相同的方式处理缩放。通过鼠标移动进行缩放+按住鼠标按钮(其中按钮只是地图移动和地图缩放之间的功能修改器)。我使用过的游戏测试人员都认为它“感觉”是最好的变焦。我建议同时在缩放模式下同时按住鼠标1和鼠标2(与B&W完全一样)-但从技术上讲,如果您没有冲突,则其中之一就足够了。

我经常建议人们安装该游戏以进行尝试。新增键盘可用性及其迄今为止我在大型地图导航中看到的最有用和最舒适的机制。

现在,这当然不是常见的默认设置,并且您必须该确保至少对您的用户进行几次解释。但是一旦人们得到了它,他们就会非常满意。此外,您还可以在3D模式中教民航海。您必须以任何方式冒险脱离2d控制舒适区。

如果鼠标控件过多,则始终可以使用修饰键或鼠标中键。最佳配置实际上取决于您的游戏流程。


这个答案实际上更适合这种情况。但是,如果为此目的使用mousewhell,应该如何处理缩放?无法通过键盘处理缩放太不方便。
S.TarıkÇetin'16

@S.TarıkÇetin已更新。
helena4 2016年

9

将运动分为两步

  1. 选择2D X / Z平面上位于实体当前Y位置的位置。
  2. 设置与该平面的偏移(向上或向下)。

这类似于Homeworld(首批3D太空RTS游戏之一)处理运动的方式。真的很好。

将移动分为两个步骤可提供最大的控制力,这仅仅是因为鼠标是2D输入设备。一次只能在一个平面上提供一个位置。通过将键盘上的两个键绑定为Y轴的上/下,可以实现相同的目的。

或者,您可以使用鼠标右键切换模式。例如,左键单击将启动移动命令,并在X / Z平面上移动目标,按住鼠标右键可更改Y轴的位置。

在此处输入图片说明


到目前为止,这似乎是最合乎逻辑的选择。不过,我会等待,以防有人提出更好的主意。
S.TarıkÇetin16年

2

进行在线EVE要做的事情:禁止点击移动!注意

它们的作用是在空间中创建对象,并允许您右键单击它们(射线广播或其他),然后选择以下不同选项之一:

  • 转到对象(以不同的速度)
  • 绕对象旋转(以不同的半径)

这使您只能移动到相关的地方。


注意 (不过,他们最近可能已经改变了。已经有一段时间没玩了。)


是的,这解决了问题,但同时也破坏了首先造成该问题的游戏方面。
S.TarıkÇetin16年

@S.TarıkÇetin是!也许就他们而言,这是最合乎逻辑的事情。也许这不适用于您的情况。
Vaillancourt

根据我的记忆,您实际上可以单击以在Eve中移动。它更像是在挑选方向型的东西,
MichaelHouse

夏娃(Eve)中有一些键盘控件可用于操纵飞船,但是这样做时,您的战术速度受到限制(例如,从环绕X行星轨道运行的空间站飞行到也环绕X行星轨道运行的卫星)一分钟或两分钟;通过手动控制飞往X行星的月亮至少需要5分钟)。只能通过选择目的地来启动高速旅行。
丹·亨德森

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.