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

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,

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





