按键注册和使用
本章涉及内容:按键注册、客户端向服务端发包、按键处理 涉及模组及版本:
rhino-forge-2001.2.2-build.18
architectury-9.2.14-forge
kubejs-forge-2001.6.5-build.14
probejs-6.0.1-forge
startup里的代码
按键注册,这里得注意一下,虽然是写在startup里,但是还是属于客户端的内容,在做成服务端打包时,需要删除该文件,打包服务端删除该文件不会对客户端有影响
const $KeyMappingRegistry = Java.loadClass("dev.architectury.registry.client.keymappings.KeyMappingRegistry");
const $KeyMapping = Java.loadClass("net.minecraft.client.KeyMapping");
const $GLFWkey = Java.loadClass("org.lwjgl.glfw.GLFW");
ClientEvents.init(() => {
global.regKeyB = new $KeyMapping(
"key.meng.packsack", //按键的组名
$GLFWkey.GLFW_KEY_B,
"key.keybinding.meng.packsack" //按键的名字
);
$KeyMappingRegistry.register(global.regKeyB);
});这里的按键组名和按键的名字是一个lang的key,就是需要在对应的lang文件里进行翻译,像下面这样
就是说这里是可以自定义的
关于按键$GLFWkey的后面内容可以在该篇章的最下面查看
client里的代码
这里是给服务器发包,告诉服务器玩家按下了这个按键,不然服务器是不知道玩家按下了,这里做了简单的判断,防止玩家一直长按,给服务器一直发包
这个代码只会在玩家第一次按下才会发送一次包
server里的代码
在服务端这边只需要接受客户端发来的包,因为这里没有其他携带信息,所以只需要接受该内容
一些注意事项
该项目只是作为示例,很多地方并不是最优解,可自行进行解决
如果对该项目代码部分不满可以将修改好的代码上传至gitee项目仓库
一定要在做服务端时,在startup里删除该文件内的所有代码,包括loadclass的内容
GLFWkey对应按键
GLFW_KEY_SPACE
空格
GLFW_KEY_APOSTROPHE
'
GLFW_KEY_COMMA
,
GLFW_KEY_MINUS
-
GLFW_KEY_PERIOD
.
GLFW_KEY_SLASH
/
GLFW_KEY_0
0
GLFW_KEY_1
1
GLFW_KEY_2
2
GLFW_KEY_3
3
GLFW_KEY_4
4
GLFW_KEY_5
5
GLFW_KEY_6
6
GLFW_KEY_7
7
GLFW_KEY_8
8
GLFW_KEY_9
9
GLFW_KEY_SEMICOLON
;
GLFW_KEY_EQUAL
=
GLFW_KEY_A
A
GLFW_KEY_B
B
GLFW_KEY_C
C
GLFW_KEY_D
D
GLFW_KEY_E
E
GLFW_KEY_F
F
GLFW_KEY_G
G
GLFW_KEY_H
H
GLFW_KEY_I
I
GLFW_KEY_J
J
GLFW_KEY_K
K
GLFW_KEY_L
L
GLFW_KEY_M
M
GLFW_KEY_N
N
GLFW_KEY_O
O
GLFW_KEY_P
P
GLFW_KEY_Q
Q
GLFW_KEY_R
R
GLFW_KEY_S
S
GLFW_KEY_T
T
GLFW_KEY_U
U
GLFW_KEY_V
V
GLFW_KEY_W
W
GLFW_KEY_X
X
GLFW_KEY_Y
Y
GLFW_KEY_Z
Z
GLFW_KEY_LEFT_BRACKET
[
GLFW_KEY_BACKSLASH
\
GLFW_KEY_RIGHT_BRACKET
]
GLFW_KEY_GRAVE_ACCENT
`
GLFW_KEY_ESCAPE
ESC
GLFW_KEY_ENTER
回车(Neter)
GLFW_KEY_TAB
Tab
GLFW_KEY_BACKSPACE
退格(backSpace)
GLFW_KEY_INSERT
插入(Insert/Ins)
GLFW_KEY_DELETE
删除(Delete/Del)
GLFW_KEY_RIGHT
方向右键
GLFW_KEY_LEFT
方向左键
GLFW_KEY_DOWN
方向下键
GLFW_KEY_UP
方向上键
GLFW_KEY_PAGE_UP
PageUp/PgUp
GLFW_KEY_PAGE_DOWN
PageDown/PgOn
GLFW_KEY_HOME
Home
GLFW_KEY_END
End
GLFW_KEY_CAPS_LOCK
锁定大小写(Caps Lock)
GLFW_KEY_SCROLL_LOCK
Scroll Lock/ScLk
GLFW_KEY_NUM_LOCK
锁定数字(Num block)
GLFW_KEY_PRINT_SCREEN
截屏(Print Screen)
GLFW_KEY_PAUSE
Pause Break/PaBk
GLFW_KEY_F1
F1
GLFW_KEY_F2
F2
GLFW_KEY_F3
F3
GLFW_KEY_F4
F4
GLFW_KEY_F5
F5
GLFW_KEY_F6
F6
GLFW_KEY_F7
F7
GLFW_KEY_F8
F8
GLFW_KEY_F9
F9
GLFW_KEY_F10
F10
GLFW_KEY_F11
F11
GLFW_KEY_F12
F12
GLFW_KEY_KP_0
数字区 0
GLFW_KEY_KP_1
数字区 1
GLFW_KEY_KP_2
数字区 2
GLFW_KEY_KP_3
数字区 3
GLFW_KEY_KP_4
数字区 4
GLFW_KEY_KP_5
数字区 5
GLFW_KEY_KP_6
数字区 6
GLFW_KEY_KP_7
数字区 7
GLFW_KEY_KP_8
数字区 8
GLFW_KEY_KP_9
数字区 9
GLFW_KEY_KP_DECIMAL
数字区 .
GLFW_KEY_KP_DIVIDE
数字区 /
GLFW_KEY_KP_MULTIPLY
数字区 *
GLFW_KEY_KP_SUBTRACT
数字区 -
GLFW_KEY_KP_ADD
数字区 +
GLFW_KEY_KP_ENTER
数字区回车
GLFW_KEY_KP_EQUAL
数字区 =
GLFW_KEY_LEFT_SHIFT
左Shift
GLFW_KEY_LEFT_CONTROL
左Ctrl
GLFW_KEY_LEFT_ALT
左Alt
GLFW_KEY_LEFT_SUPER
左Windows键/左Command(Mac)
GLFW_KEY_RIGHT_SHIFT
右Shift
GLFW_KEY_RIGHT_CONTROL
右Ctrl
GLFW_KEY_RIGHT_ALT
右Alt
GLFW_KEY_RIGHT_SUPER
右Windows键/右Command(Mac)
最后更新于