Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

请问可以添加新功能:自定义键位功能吗? #119

Open
liufuyou opened this issue May 3, 2023 · 2 comments
Open

请问可以添加新功能:自定义键位功能吗? #119

liufuyou opened this issue May 3, 2023 · 2 comments

Comments

@liufuyou
Copy link

liufuyou commented May 3, 2023

请问,大佬能开发一个新功能自定义键位吗?
我习惯用方向键来快进和后退。目前的R键,L键用的很不习惯。
但我清楚不同人,也有不同的需求。所以我认为可不可以做一个新功能:(自定义键位的作用)
自定义功能键位,自己可以设置,就比如说我自己设置方向键左右,是快进跟后退。
我找了很久都没有找到这个功能。一开始还把可以自定义字体和按键图标,看成了可以自定义键位功能

软件非常棒,谢谢大佬开发这么好的项目。在好多相关项目都停更的情况下,但这一点用了很久还是不习惯。
image

@xfangfang
Copy link
Owner

@liufuyou
不是大佬啦,我的回答是不可以,不过很愿意接受这样的PR

这个软件最开始并不是设计为PC上的官方客户端替代品,操作方式主要是面向触屏和手柄。

为什么我不能增加自定义键位:

  1. 最主要的原因是这个软件最开始并不是为键盘设计的,现在只是把键盘按钮映射为手柄,需要写一些代码才能广泛的支持各类键盘按键,因为我比较懒,所以不太想做,但是欢迎提交PR。
  2. 同时也需要对应的图标字体设计,目前这几个提示的键位图标是我随便画的,也是简单的修改了手柄按键的字体,如果要支持键盘操作,可能需要在这一方面花点时间。
  3. 其次是有冲突,目前方向键是用来切换焦点使用的,占用了方向键就需要修改方向键的键位,不过这个问题就不大了。

如果不愿意花时间搞这样的pr,可以拉一下代码,简单调整一下键盘快捷键的映射。(其实这也算是一种自定义了,编译起来也不费事,不想本地编译也可以在github 用 github action编译)

wiliwili/library/borealis/library/lib/platforms/glfw/glfw_input.cpp

按照你的需求,可以这么改

// glfw_input.cpp line 53
static const size_t GLFW_GAMEPAD_TO_KEYBOARD[GLFW_GAMEPAD_BUTTON_MAX] = {
    GLFW_KEY_ENTER, // GLFW_GAMEPAD_BUTTON_A
    GLFW_KEY_BACKSPACE, // GLFW_GAMEPAD_BUTTON_B
    GLFW_KEY_X, // GLFW_GAMEPAD_BUTTON_X
    GLFW_KEY_Y, // GLFW_GAMEPAD_BUTTON_Y
-    GLFW_KEY_L, // GLFW_GAMEPAD_BUTTON_LEFT_BUMPER
-    GLFW_KEY_R, // GLFW_GAMEPAD_BUTTON_RIGHT_BUMPER
+    GLFW_KEY_LEFT, // GLFW_GAMEPAD_BUTTON_LEFT_BUMPER
+    GLFW_KEY_RIGHT, // GLFW_GAMEPAD_BUTTON_RIGHT_BUMPER
    GLFW_KEY_F1, // GLFW_GAMEPAD_BUTTON_BACK
    GLFW_KEY_F2, // GLFW_GAMEPAD_BUTTON_START
    GLFW_GAMEPAD_BUTTON_NONE, // GLFW_GAMEPAD_BUTTON_GUIDE
    GLFW_KEY_Q, // GLFW_GAMEPAD_BUTTON_LEFT_THUMB
    GLFW_KEY_P, // GLFW_GAMEPAD_BUTTON_RIGHT_THUMB
-    GLFW_KEY_UP, // GLFW_GAMEPAD_BUTTON_DPAD_UP
-    GLFW_KEY_RIGHT, // GLFW_GAMEPAD_BUTTON_DPAD_RIGHT
-    GLFW_KEY_DOWN, // GLFW_GAMEPAD_BUTTON_DPAD_DOWN
-    GLFW_KEY_LEFT, // GLFW_GAMEPAD_BUTTON_DPAD_LEFT
+    GLFW_KEY_W, // GLFW_GAMEPAD_BUTTON_DPAD_UP
+    GLFW_KEY_D, // GLFW_GAMEPAD_BUTTON_DPAD_RIGHT
+    GLFW_KEY_S, // GLFW_GAMEPAD_BUTTON_DPAD_DOWN
+    GLFW_KEY_A, // GLFW_GAMEPAD_BUTTON_DPAD_LEFT
};

@liufuyou
Copy link
Author

liufuyou commented May 4, 2023

@liufuyou 不是大佬啦,我的回答是不能,不过很想接受这样的PR

这个软件最开始并不是设计为PC上的官方客户端替代品,操作方式主要是触摸屏和手柄。

为什么我不能增加自定义关键字位置:

  1. 最主要的原因是这个软件最开始并不是为按键设计的,现在只是把按键盘按按键投影为手柄,需要写一些代码才能泛泛的支持按住各类按键盘按键,因为我比较懒,所以不太想做,但是欢迎提交公关。
  2. 同时也需要对应的图形字体设计,目前这几个提示的关键字图形是我随即画的,也是简单的修改了手动按键的字体,如果需要支持按键盘操作,可能需要在这个方面花点时间。
  3. 其次是有冲突,当前方向键是用来切换焦点使用的,占了方向键就需要修改方向键的键位,不过这个问题就不大了。

如果不想花时间搞这样的pr,可以拉一下代码,简单调一下键盘快捷键的投影。来也不要事,不想本地编译也可以在github上用github动作编译)

wiliwili/library/borealis/library/lib/platforms/glfw/glfw_input.cpp

按照你的需要,可以这样改

// glfw_input.cpp line 53
static const size_t GLFW_GAMEPAD_TO_KEYBOARD[GLFW_GAMEPAD_BUTTON_MAX] = {
    GLFW_KEY_ENTER, // GLFW_GAMEPAD_BUTTON_A
    GLFW_KEY_BACKSPACE, // GLFW_GAMEPAD_BUTTON_B
    GLFW_KEY_X, // GLFW_GAMEPAD_BUTTON_X
    GLFW_KEY_Y, // GLFW_GAMEPAD_BUTTON_Y
-    GLFW_KEY_L, // GLFW_GAMEPAD_BUTTON_LEFT_BUMPER
-    GLFW_KEY_R, // GLFW_GAMEPAD_BUTTON_RIGHT_BUMPER
+    GLFW_KEY_LEFT, // GLFW_GAMEPAD_BUTTON_LEFT_BUMPER
+    GLFW_KEY_RIGHT, // GLFW_GAMEPAD_BUTTON_RIGHT_BUMPER
    GLFW_KEY_F1, // GLFW_GAMEPAD_BUTTON_BACK
    GLFW_KEY_F2, // GLFW_GAMEPAD_BUTTON_START
    GLFW_GAMEPAD_BUTTON_NONE, // GLFW_GAMEPAD_BUTTON_GUIDE
    GLFW_KEY_Q, // GLFW_GAMEPAD_BUTTON_LEFT_THUMB
    GLFW_KEY_P, // GLFW_GAMEPAD_BUTTON_RIGHT_THUMB
-    GLFW_KEY_UP, // GLFW_GAMEPAD_BUTTON_DPAD_UP
-    GLFW_KEY_RIGHT, // GLFW_GAMEPAD_BUTTON_DPAD_RIGHT
-    GLFW_KEY_DOWN, // GLFW_GAMEPAD_BUTTON_DPAD_DOWN
-    GLFW_KEY_LEFT, // GLFW_GAMEPAD_BUTTON_DPAD_LEFT
+    GLFW_KEY_W, // GLFW_GAMEPAD_BUTTON_DPAD_UP
+    GLFW_KEY_D, // GLFW_GAMEPAD_BUTTON_DPAD_RIGHT
+    GLFW_KEY_S, // GLFW_GAMEPAD_BUTTON_DPAD_DOWN
+    GLFW_KEY_A, // GLFW_GAMEPAD_BUTTON_DPAD_LEFT
};

感谢回复,早上就看到了回复的邮件。之前一直没有空闲,现在才能
我修改一下,Thanks♪(・ω・)ノ

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants