📜  单击砖块时显示 gui (1)

📅  最后修改于: 2023-12-03 15:22:49.177000             🧑  作者: Mango

单击砖块时显示 GUI

在游戏中,我们经常需要和砖块进行交互,比如挖掘砖块、放置砖块等。有时候,我们希望在玩家单击砖块时能够显示出一些类似于界面的内容,以便让玩家进行更加复杂的操作。这个时候,我们就可以使用 Minecraft 中的 GUI(Graphical User Interface)。

什么是 GUI?

GUI,全称为 Graphical User Interface,中文翻译为图形用户界面。顾名思义,GUI 就是一种通过图形化的方式来展示程序的用户界面。在 Minecraft 中,GUI 一般用于游戏中的一些菜单和设置页面。

如何在 Minecraft 中显示 GUI?

在 Minecraft 中,我们可以通过编写 Mods 来显示 GUI。下面,我们来编写一个简单的 Mod,当玩家单击砖块时,在屏幕中心显示出 Hello World!的文本。

public class MainMod implements ModInitializer {
    public static final String MOD_ID = "my-mod";

    @Override
    public void onInitialize() {
        // 注册一个事件监听器,在玩家单击砖块时触发
        FabricBlockSettings settings = FabricBlockSettings.of(Material.STONE).hardness(1.0f);
        Registry.register(Registry.BLOCK, new Identifier(MOD_ID, "my-block"), new MyBlock(settings));
        FabricLoader.getInstance().getEntrypoints("my-mod", ModInitializer.class).forEach(ModInitializer::onInitialize);
    }

    public static class MyBlock extends Block {
        public MyBlock(Settings settings) {
            super(settings);
        }

        @Override
        public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) {
            if (!world.isClient) {
                String message = "Hello World!";
                player.sendMessage(new LiteralText(message), false); // 显示消息
            }
            return ActionResult.SUCCESS;
        }
    }
}

这个代码片段定义了一个 MyBlock 类,用于生成一个新的方块。我们在方块注册的时候,将其加入世界:

FabricBlockSettings settings = FabricBlockSettings.of(Material.STONE).hardness(1.0f);
Registry.register(Registry.BLOCK, new Identifier(MOD_ID, "my-block"), new MyBlock(settings));

同时,在 MyBlock 类中,我们重写了 Block 类的 onUse 方法。当玩家在游戏中单击该方块时,会触发 onUse 方法。我们在这个方法内部,使用了 Minecraft 内置的文本组件 LiteralText 来显示 “Hello World!” 的文本:

if (!world.isClient) {
    String message = "Hello World!";
    player.sendMessage(new LiteralText(message), false);
}

这个代码使用了 !world.isClient 的条件,可以确保代码仅在服务端被执行,而不是在客户端被执行。通过在服务端发送消息给客户端,我们可以获取与玩家交互打开了游戏的客户端图形。

总结

本文介绍了如何在 Minecraft 中显示 GUI。我们编写了一个简单的 Mod,在玩家单击方块时,在屏幕中心显示了 Hello World!的文本。Minecraft 的 GUI 提供了丰富的组件和排版选项,如果你想要更深入地了解 Minecraft 中的 GUI,可以查阅 Minecraft Wiki 上的相关内容。