欢迎光临散文网 会员登陆 & 注册

我的世界Minecraft 1.19 Mod开发教程分享-13-自定义按键

2023-06-28 23:39 作者:Flandre芙兰  | 我要投稿

创建文件夹和目录

创建如下的目录结构

tutorialmod\util\KeyBinding.java


在KeyBind加入如下的代码:

  • KeyMapping是一个处理键盘和鼠标输入的类,可以让你绑定按键

  • 第一参数是string类型的,对按键的描述

  • 第二参数是KeyConflictContext,处理按键冲突,用于判断按键是在某个位置,这里选择的是游戏中

第三参数是InputConstants.Type是一个枚举,表示输入的设备,这里是键盘

第四个参数是绑定的按键,这里是字母o,

  • 第五个参数是category

添加翻译

这里的两个名称对应了我们之前的设置的名称。

注册自定义的按键

创建如下的目录 

tutorialmod/event/ClientEvents


在该类中加入如下的代码

  • Mod.EventBusSubscriber注解表示在总线上注册事件的监听器,表示该类方法订阅了总线的静态方法。

    • 其中 bus表示是那个条总线,mod或者是forge

    • modid 表示监听的那个mod

    • value 表示在那个服务器有效,例如Dist.Client表示客户端。

  • SubscribeEvent注解标记事件处理的注解,表示订阅了某个事件总线上的某个事件,在该事件发布时候,会被调用。

    • 仅修饰静态方法。

    • 必须有一个事件参数

    • 没有返回值

  • KeyBinding.DRINKING_KEY.consumeClick() 是按键被按下。

  • InputEvent.Key 是键盘按键相关的事件,在键盘按下后会触发。

  • RegisterKeyMappingsEvent是注册键盘映射的事件,尽在客户端,mod总线上触发。

按住Ctrl点击key

发现这个事件仅仅在客户端执行。注册在forge总线

所以在这里通过Minecraft获得player必定是当前的操作的玩家。

在RegisterKeyMappingsEvent类中,我们同样可以看到,这个事件在Mod总线上,并且尽在客户端执行。

测试

可以看到注册成功了

每按一次o就有一条消息


我的世界Minecraft 1.19 Mod开发教程分享-13-自定义按键的评论 (共 条)

分享到微博请遵守国家法律