差别
这里会显示出您选择的修订版和当前版本之间的差别。
后一修订版 | 前一修订版 | ||
javamodding:5_basicitems [2022/03/30 21:37] – 创建 硫缺铅 | javamodding:5_basicitems [未知日期] (当前版本) – 外部编辑 (未知日期) 127.0.0.1 | ||
---|---|---|---|
行 1: | 行 1: | ||
+ | |||
+ | ====== 简易物品 ====== | ||
+ | 在 Mindustry的开发中,**享元模式和物品与物品堆栈类**十分常见。享元模式这是一种**设计模式**,意在降低对象大小与内存占用。 | ||
+ | ===== 改名 ===== | ||
+ | 我已经见过在某些地方不知道改名的人了,所以请你搞清楚接下来每一个名字的意义,并且正确替换。 | ||
+ | * 将开头package后的**包名** example替换成你取的**包名**。 | ||
+ | * 将下面的**类名**ExampleJavaMod替换成你取的**类名** | ||
+ | * 模组名也可更改,不过这个牵扯不大 | ||
+ | * 修改了以上名称,**全限定名(包名加类名)**也改变为你取的**包名.类名** | ||
+ | * 注意,构造方法名和文件名要**与类名保持一致** | ||
+ | 在此处我们假定本教程的包名为freedom,类名为FreedomMod,模组名为freedom mod。 | ||
+ | // | ||
+ | ===== 创建ModItems类 ===== | ||
+ | 右键模组的包,并点击 新建-Java类,在弹出的窗口中,类名填写为ModItmes,这样 IJ 就会帮你把类建好了。// | ||
+ | |||
+ | < | ||
+ | |||
+ | 在Erekir之前,load方法需要ContentList,但在136之后,转变为如下写法: | ||
+ | < | ||
+ | package freedom; | ||
+ | public class ModItems { | ||
+ | public static void load() { | ||
+ | |||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ===== 第一个物品 ===== | ||
+ | |||
+ | // | ||
+ | |||
+ | 首先,在load方法里我们输入以下语句: | ||
+ | new Item(" | ||
+ | 为了向计算机说明自己向模组内添加了一个物品,我们需要实例化它,即调用Item类的构造函数。这个过程我们叫做**注册**。在括号内我们需要填入物品ID。ID是一个字符串,所以我们一定要用双撇号扩起来。等到执行时,load方法会自动调用构造函数,并将物品ID传入游戏,在经历了一些巴拉巴拉的魔法之后,你的物品就被**注册**进游戏内了。 | ||
+ | | ||
+ | ID就是物品的身份证号,就像身份证号一样,我们用不同的ID区分内容。如果ID重复了,即发生了// | ||
+ | |||
+ | 现在我们物品已经被注册了,但是,我们根本不能访问他,游戏更不能,它毫无作用。为了能够让我们和游戏能够访问到这个物品,我们不止需要注册它,还需要将其赋值给 ModItems类的**静态字段**中,我们为了见名生义,取名为 iron,这样,代码如下: | ||
+ | < | ||
+ | |||
+ | package freedom; | ||
+ | public class ModItems { | ||
+ | public void static load() { | ||
+ | iron = new Item(" | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | 接下来,我们还需要在loadContent()方法中把ModItems类实例化并调用,并调用它的load()方法。只需要在主类当中添加如下代码: | ||
+ | < | ||
+ | public static void load() { | ||
+ | Log.info(" | ||
+ | modItems = new ModItems(); | ||
+ | modItems.load(); | ||
+ | } | ||
+ | </ | ||
+ | ===== 贴图与本地化 ===== | ||
+ | ==== 贴图 ==== | ||
+ | |||
+ | 上一章中我们说道,assets/ | ||
+ | |||
+ | 首先在项目根目录创建 / | ||
+ | |||
+ | ==== 本地化 ==== | ||
+ | | ||
+ | |||
+ | 我们可以放置任意语言的语言文件,只要在游戏内已存在即可。命名格式为bundle_< | ||
+ | |||
+ | 接下来我们需要填写内容,bundle文件类似键值对,其中键名的命名规则为< | ||
+ | |||
+ | **对于键值,在编写前,请务必确认自己编辑器的编码为UTF8,右下角可看,如果不是,请立即在文件-设置-编辑器-文件编码及文件-其他设置-默认设置-编辑器-文件编码把一切可以改成UTF-8的全部改成UTF-8**然后正常填入内容即可。 | ||
+ | 在此处我们的代码即可如下: | ||
+ | bundle.properties | ||
+ | item.freedom-mod-iron.name=Iron | ||
+ | item.freedom-mod-iron.description=The most important metal. | ||
+ | bundle_zh_CN.properties | ||
+ | item.freedom-mod-iron.name=铁 | ||
+ | item.freedom-mod-iron.description=最重要的金属 | ||