User Tools

Site Tools


zh_cn:tutorial:screen

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
zh_cn:tutorial:screen [2023/04/24 08:35] – [完成之前需要检查的事情] solidblockzh_cn:tutorial:screen [2023/12/18 01:40] (current) – [添加文本] solidblock
Line 1: Line 1:
 ====== 添加屏幕 ====== ====== 添加屏幕 ======
  
-**屏幕**是指的图形用户界面,其类继承了 ''Screen'',允许用户进行交互并实现一些功能。屏幕一个例子是你的模组的配置屏幕。屏幕仅在客户端存在,因此应注解为 ''@Environment(EnvType.CLIENT)''+**屏幕**是指的图形用户界面,其类继承了 ''Screen'',允许用户进行交互并实现一些功能。屏幕一个例子是你的模组的配置屏幕。屏幕仅在客户端存在,因此可将相的类注解为 ''@Environment(EnvType.CLIENT)''
  
 你可以使用 mixin 以在现有的屏幕中,加入你的屏幕的链接。但是很多情况下,我们可以实现 Mod Menu 模组中的 ''ModMenuApi'',这样就能够在模组菜单屏幕中,通过配置按钮来进入屏幕。本文章不会讲述如何实现 ''ModMenuApi'' 你可以使用 mixin 以在现有的屏幕中,加入你的屏幕的链接。但是很多情况下,我们可以实现 Mod Menu 模组中的 ''ModMenuApi'',这样就能够在模组菜单屏幕中,通过配置按钮来进入屏幕。本文章不会讲述如何实现 ''ModMenuApi''
Line 124: Line 124:
 在 ''render'' 方法中,你可以调用像 ''textRenderer.draw''、''drawTextWithShadow'' 或 ''drawCenteredTextWithShadow'' 这样的方法,以在屏幕中渲染文本。 在 ''render'' 方法中,你可以调用像 ''textRenderer.draw''、''drawTextWithShadow'' 或 ''drawCenteredTextWithShadow'' 这样的方法,以在屏幕中渲染文本。
 <code java> <code java>
 +  // 对于 1.20 以下版本
   @Override   @Override
   public void render(MatrixStack matrices, int mouseX, int mouseY, float delta) {   public void render(MatrixStack matrices, int mouseX, int mouseY, float delta) {
     super.render(matrices, mouseX, mouseY, delta);     super.render(matrices, mouseX, mouseY, delta);
     drawCenteredTextWithShadow(matrices, textRenderer, Text.literal("你必须看到我"), width / 2, height / 2, 0xffffff);     drawCenteredTextWithShadow(matrices, textRenderer, Text.literal("你必须看到我"), width / 2, height / 2, 0xffffff);
 +  }
 + 
 +  // 对于 1.20 及以上的版本
 +  @Override
 +  public void render(DrawContext context, int mouseX, int mouseY, float delta) {
 +    super.render(context, mouseX, mouseY, delta);
 +    context.drawCenteredTextWithShadow(textRenderer, Text.literal("你必须看到我"), width / 2, height / 2, 0xffffff);
   }   }
 </code> </code>
Line 134: Line 142:
 <code java> <code java>
     final MultilineText multilineText = MultilineText.create(textRenderer, Text.literal("这个文本很长 ".repeat(20)), width - 20);     final MultilineText multilineText = MultilineText.create(textRenderer, Text.literal("这个文本很长 ".repeat(20)), width - 20);
 +    
 +    // 对于 1.20 以下版本
     multilineText.drawWithShadow(matrices, 10, height / 2, 16, 0xffffff);     multilineText.drawWithShadow(matrices, 10, height / 2, 16, 0xffffff);
 +    // 对于 1.20 及以下的版本
 +    multilineText.drawWithShadow(context, 10, height / 2, 16, 0xffffff);
 </code> </code>
  
zh_cn/tutorial/screen.1682325350.txt.gz · Last modified: 2023/04/24 08:35 by solidblock