在GUI中,应该在按下或释放按钮时处理输入吗?


12

在我们游戏的菜单系统(选择级别,选项等)中,玩家按下游戏板上的a按钮进入下一个屏幕。我对菜单系统进行了编码,以等待按钮被释放后再执行任何操作(即显示下一个屏幕)。最近的一些游戏测试反馈建议我们采取相反的方式:按下按钮后立即采取措施。我很好奇,这种处理的标准方式是什么,它甚至会有所作为吗?

Answers:


32

在游戏板控制的游戏中,控制输入直接将GUI焦点从一个GUI按钮更改为另一个GUI按钮,应在按下控制器按钮时激活这些GUI按钮。

在由鼠标控制的游戏中(或使用游戏手柄在屏幕上移动虚拟鼠标光标的情况),当将鼠标/控制器按钮释放到与该按钮相同的按钮上时,应激活屏幕上的按钮。按下。(如果在一个GUI按钮上进行了按下,然后将鼠标移动并在另一个GUI按钮上释放,则两个GUI按钮均未激活)

原因是人们的鼠标控制技能变化很大,人们经常会在将光标精确定位到所需位置时遇到一些麻烦,甚至无法准确地说出当前鼠标悬停在哪个GUI按钮上。从理论上讲,人们可以按住鼠标按钮以突出显示GUI按钮,如果该GUI按钮不是他们打算使用的按钮,则可以在释放鼠标按钮之前按顺序将其光标移开避免按下它。

但是,如果您的游戏是由游戏板控制的,那么您绝对想在按下游戏板按钮时采取行动,而不是在释放游戏板时采取行动。

五年后编辑:

自发布此答案以来,已经出现了一种新的标准,用于处理由游戏手柄控制的鼠标式光标。

在上面的答案中,我建议应将它们实现为与实际上受鼠标控制的光标完全相同。鼠标向下突出显示,如果光标仍位于同一GUI元素上,则向上拖动激活。

但是现在,游戏板控制的游标通常会在按住游戏板按钮一段时间后激活GUI操作(通常大约一秒钟)。如果您要使用此系统,则需要在屏幕上显示一个指示器,以显示激活将持续多长时间(通常这是一个围绕光标本身的小环,随着您接近激活该指示器而逐渐变满。鼠标悬停在按钮上),并且在按住按钮的同时,您仍需要突出显示将要激活的元素(最好是在鼠标悬停在元素上时都这样做,即使如果未按住该按钮)。按住按钮时,不应移动光标,以免在最后一刻将光标推挤时意外激活GUI元素。

该系统的优点在于,它允许鼠标样式光标位于错误位置上的用户避免过早释放按钮而激活该元素的情况。鼠标样式的“在释放之前将其移开”在游戏板上完成的频率要比使用鼠标自然得多,并且这种方法使游戏板用户可以更轻松地中止不必要的点击。

我们甚至开始看到一些游戏正在尝试使用这种光标交互模型,即使它们的光标是由真实的鼠标移动的。举一个例子,没有人的天空做到这一点。有趣的是,这种处理鼠标-光标交互的方法是否会在未来几年内变得越来越普遍和期望。


10
+1。应在释放鼠标时而不是在按下鼠标时执行此操作。但是,要使此方法有效,重要的是GUI元素本身在鼠标按下事件时更改视觉状态。
Kylotan

+1表示将问题更新为5年以保持相关性。
lozzajp '16

每次有人对我的旧答案之一发表评论或评论时,我都会重新阅读以确保它仍然是最新的。:)
特雷弗·鲍威尔

1

按下键后,我将立即采取措施。

释放钥匙后采取行动的最好例子是《星际争霸:Broodwar》。当我很快按下这些键时,我常常会在完全释放前一个键之前先按下下一个键,这导致某些命令被忽略。(1A Click,2A Click,3A Click-2将被忽略)

结果在《魔兽争霸III》中有所改变,因此游戏对我的反应更加灵敏,而且我从未遇到Broodwar的“粘性控制组”问题。

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.