Minecraft 1.12.2模组开发(四十二) 按键效果(KeyBinding)

本文介绍了如何在Minecraft中通过Java编程为特定键绑定特殊功能,如召唤生物、激活技能和位置传送。详细步骤包括创建KeyBinding类、在ClientProxy中注册键位、键盘事件管理及应用到盔甲效果和生物召唤上。

你是否想在MC中实现一个效果,当你按下一个键的时候就会触发一个特殊效果(召唤、获得一个buff、传送到一个地点),我们今天就着手实现MC中的键位控制。

cr.jpg

1.Java包中新建一个keys包 -> keys包中新建ModKeyBinding类

ModKeyBinding.java

package com.joy187.rejoymod.keys;

import com.joy187.rejoymod.IdlFramework;
import com.joy187.rejoymod.proxy.ClientProxy;
import net.minecraft.client.settings.KeyBinding;
import net.minecraftforge.client.settings.IKeyConflictContext;
import net.minecraftforge.client.settings.KeyModifier;

//@SideOnly(Side.CLIENT)
public class ModKeyBinding extends KeyBinding {
    public ModKeyBinding(String description, IKeyConflictContext keyConflictContext, KeyModifier keyModifier, int keyCode, String category) {
        super(String.format("key.%s.%s", IdlFramework.MODID, description), keyConflictContext, keyModifier, keyCode, category);
        //将模组中所有键位进行注册
        ClientProxy.KEY_BINDINGS.add(this);
    }

}

2.找到我们的ClientProxy类,添加模组所有键位的信息:

ClientProxy.java

package com.joy187.rejoymod.proxy;

import com.joy187.rejoymod.init.ModParticles;
import com.joy187.rejoymod.keys.ModKeyBinding;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.client.settings.KeyBinding;
import net.minecraft.item.Item;
import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.client.settings.KeyConflictContext;
import net.minecraftforge.client.settings.KeyModifier;
import org.lwjgl.input.Keyboard;

import java.util.ArrayList;
import java.util.List;

public class ClientProxy extends ProxyBase {
    public static final List<KeyBinding> KEY_BINDINGS = new ArrayList<KeyBinding>();
    
    //我们所有的键位进行声明  参数最重要的是Keyboard.KEY_X 对应我们的按键,其他基本不变
	public static final KeyBinding SUMMON = new ModKeyBinding("activate_skill_summon", KeyConflictContext.IN_GAME, KeyModifier.NONE, Keyboard.KEY_V, "key.category.rejoymod");
	public static final KeyBinding EFFECTME = new ModKeyBinding("activate_skill_effectme", KeyConflictContext.IN_GAME, 
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jay_fearless

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值