3,469
个编辑
MCBBS Wiki欢迎您共同参与编辑!在参与编辑之前请先阅读Wiki方针。
如果在编辑的过程中遇到了什么问题,可以去讨论板提问。
为了您能够无阻碍地参与编辑 未验证/绑定过邮箱的用户,请尽快绑定/验证。
MCBBS Wiki GitHub群组已上线!
您可以在回声洞中发表吐槽!
服务器状态监控。点击进入
本站由MCBBS用户自行搭建,与MCBBS及东银河系漫游指南(北京)科技有限公司没有从属关系。点此了解 MCBBS Wiki 不是什么>>
(创建页面,内容为“== 关于 == 你可以使用FancyMenu编写你自己的自定义背景拓展模组,而且你可以在布局中使用它们。 重要:Menu Background API只在FancyMenu v2.6.2+可用! == 准备开发环境 == 请参阅 准备工作区。 == 添加菜单背景 == 每一个菜单背景都系要两个类。 第一个是<code>MenuBackgroundType</code>。 这个是你的背景类型(比如已经存在的动画,或是全景…”) |
|||
| 第383行: | 第383行: | ||
=== 创建字符串模式背景 === | === 创建字符串模式背景 === | ||
输入字符串模式下的<code>MenuBackgroundTypes</code>从一个输入字符串中快速创建<code>MenuBackground</code>实例。 | |||
这些实例并不会想普通模式会被储存下来,而是每次布局被加载时新的实例也会被创建。 | 这些实例并不会想普通模式会被储存下来,而是每次布局被加载时新的实例也会被创建。 | ||
MenuBackground Class | ==== MenuBackground Class ==== | ||
创建一个<code>MenuBackground</code>的新子类并取一个合适的名字 | |||
接下来我会给我的示例类起名为<code>ExampleMenuBackgroundForInputString</code>。 | |||
这里有一些需要特别注意的事项。 | 这里有一些需要特别注意的事项。 | ||
构造方法(Constructor) | =====构造方法(Constructor)===== | ||
和普通模式不一样,你不需要为你的背景整一个唯一的标识符,因为它们并不会被储存下来。在输入字符串模式下,你为<code>MenuBackground</code>实例使用什么标识符基本上并不重要。 | |||
当然,这里仍然可以在构造上设置变量。 | 当然,这里仍然可以在构造上设置变量。 | ||
<syntaxhighlight lang="java"> | |||
public ExampleMenuBackgroundForInputString(@Nonnull MenuBackgroundType type, String imagePath) { | public ExampleMenuBackgroundForInputString(@Nonnull MenuBackgroundType type, String imagePath) { | ||
//Identifiers aren't really used for backgrounds that don't get registered to a type (because the type uses the input string), | //Identifiers aren't really used for backgrounds that don't get registered to a type (because the type uses the input string), | ||
| 第410行: | 第415行: | ||
} | } | ||
</syntaxhighlight> | |||
=====onOpenMenu()===== | |||
onOpenMenu() | |||
这个方法对于输入字符串模式的背景没用,因为在每一次加载菜单时总会创建新的实例,所以这没啥可重置的。 | 这个方法对于输入字符串模式的背景没用,因为在每一次加载菜单时总会创建新的实例,所以这没啥可重置的。 | ||
<syntaxhighlight lang="java"> | |||
@Override | @Override | ||
public void onOpenMenu() { | public void onOpenMenu() { | ||
| 第421行: | 第426行: | ||
//所以在使用输入字符串模式时你不需要重置。 | //所以在使用输入字符串模式时你不需要重置。 | ||
} | } | ||
</syntaxhighlight> | |||
=====render()===== | |||
调用此方法来渲染你的菜单背景实例。 | |||
应该指我解释一下在这里做什么,对吧? | 应该指我解释一下在这里做什么,对吧? | ||
<syntaxhighlight lang="java"> | |||
//Here you will render the background instance. | //Here you will render the background instance. | ||
//在这里你可以渲染背景实例。 | //在这里你可以渲染背景实例。 | ||
| 第475行: | 第481行: | ||
} | } | ||
</syntaxhighlight> | |||
=====完整样例类===== | |||
完整的<code>MenuBackground</code>示例。 | |||
<syntaxhighlight lang="java"> | |||
package de.keksuccino.fancymenu.api.background.example.with_input_string; | package de.keksuccino.fancymenu.api.background.example.with_input_string; | ||
| 第579行: | 第585行: | ||
} | } | ||
} | } | ||
</syntaxhighlight> | |||
====MenuBackgroundType Class==== | |||
MenuBackgroundType Class | |||
创建一个MenuBackgroundType的新子类并给它取合适的名字。 | 创建一个MenuBackgroundType的新子类并给它取合适的名字。 | ||
接下来我会将我的示例背景类型类命名为ExampleMenuBackgroundTypeWithInputString。 | 接下来我会将我的示例背景类型类命名为ExampleMenuBackgroundTypeWithInputString。 | ||
| 第864行: | 第869行: | ||
复制代码 | 复制代码 | ||
注册菜单背景 | ====注册菜单背景==== | ||
你就快完成了 | 你就快完成了 | ||
现在你只需要在游戏加载时把你的MenuBackgroundType注册到MenuBackgroundTypeRegistry. | 现在你只需要在游戏加载时把你的MenuBackgroundType注册到MenuBackgroundTypeRegistry. | ||