[周边教程]-Minecraft-MOD制作:从入门到精通

上传人:gbs****77 文档编号:9294427 上传时间:2020-04-04 格式:DOC 页数:24 大小:1.65MB
返回 下载 相关 举报
[周边教程]-Minecraft-MOD制作:从入门到精通_第1页
第1页 / 共24页
[周边教程]-Minecraft-MOD制作:从入门到精通_第2页
第2页 / 共24页
[周边教程]-Minecraft-MOD制作:从入门到精通_第3页
第3页 / 共24页
点击查看更多>>
资源描述
第一章 学习 Java java 是什么 java 是一门计算机语言 我相信很多人都知道这一事实 这很可能是由 于您曾经玩过由这一语言编译而成的游戏 Java 是一门面向对象的计算机语言 也就是说 它由两主要部分组成 字段和方法 那什么是字段和方法呢 我们以人为例 我们可以把一个人比作一个工程 o o 好像有些类比不当 在这个工程中 会有许多包 比如 human body head 在每个包中会包含好多类 我们之后详细阐述 比如说 ear java 就是一个类 现在我们已经知道了字段和方法 那么什么是类呢 我们以 之前的 ear java 为例 这个耳朵类可以诸如 耳垂高度 和 音量 等特征 所以一个解决方 案是建立如 listenTo 和 moveEars 等函数 您可能会问这到底是什么呀 也可能会问这些和 Minecraft 到底有神马关系 好吧 以下就是一个例子 方法 函数举例 1 public int getMaxHealth 2 3 return 20 4 复制代码 这是 minecraft 中 EntityCreeper java 中的一段代码 这段代码非常基本 您只需关心 的是如果把返回值 20 改为其它的什么东西会发生什么呢 当然您有可能会猜测 嗯 有 可能会带来我砍苦力怕多少刀它会死呢 其中的 public 表示其它的类也可以调用该函数 int 表示该函数为整型函数 在 2 147 483 647 之间的所有十进制整数 getMaxHealth 为函数名 return 20 表示返回值 比如如果有人问这个类 苦力怕的 最大生命值是多少呀 它将回答 是 20 由于我们在函数头声明了 int 所以我们 的返回值必须为整数 字段 变量举例 1 private double velocityY 复制代码 这是在 EntityMinecart 类中所生命的一个字段 其中 private 表示只有这个类才可以 访问这个字段 double 表示为一个十进制数 velocityY 为这个变量的变量名 字段和变 量有时表示同一个东西 以上就是关于 Java 的一些最基本的知识 网络上还有许许多多更为优秀的 Java 教程 所以就不再花时间赘述了 相关教程 TheNewBoston s Java Beginner Programming Tutorials The JavaTM Tutorials 第二章 计划与头脑风暴 再次强调 这一章非常重要 有许多准备制作 MOD 的人士 天赋异禀 最后全都 楼主我要整合包 了 您应该对于这个 MOD 最终能够实现什么功能 您能做到什么程 度有一个明确的计划 可以在脑中对 MOD 进行简单地规划 或者对于每一项您所要添加 的项目列出一份长达 10 页的清单 这都可以 取决于您个人的习惯 需要牢记的事情 从简单之处做起 我见过好多好多人再问楼主类似的问题 如何让 NPC 自动建筑 谈话 打猎 去杀 末影之龙呀 MOD 制作是一个长期的过程 您也不可能马上就成为高手 正如我之前 谈过的 您可以通过学习一些 Java 基础知识来了解一些知识 这样可以使您更快地成为高 手 所以说要从简单之处入手 先试着为 Minecraft 添加一个方块吧 要有兴趣 请注意 为您喜欢的游戏制作 MOD 并不应该成为您的一份工作 在 MOD 制作之时 您应该能获得成就感与愉悦 虽然当您不能修正错误 或者您的 MOD 的反响没有预想中 高时难免会灰心丧气 但这只是一时之举 如果您经常性地感到厌倦并没有从中获得乐趣 或许玩 Minecraft 更加适合您吧 第二章到此结束 第三章 设置工作环境 在这章开始之前呢 我们需要提一下 forge 我个人相比较 modloader 而言更倾向于 forge 您可以在安装之前阅读关于 Forge 与 modloader 之间的比较 但是记得总结 有许 多工具有助于提高您 MOD 的兼容性并使您的 MOD 制作之路更为轻松 Forge 可以通过更 新支持不同的版本但是 modloader 只支持对应的版本 所以不要犹豫通过安装 FML 和其他 一些工具 您可以不需要安装那繁多的 API 如果您有任何问题 请移驾至 并加 入 MinecraftForge 请参阅本文 1 1 html 准备文件 在工作环境中 您需要一份纯净的 minecraft 文件夹 可以通过备份您当前 minecraft 文件夹 并通过点击 force update 来获得纯净的 minecraft 文件 下载 您在开始 MOD 制作之前还需要下载一下这三样东西 最新版本的 Eclipse http www eclipse org downloads packages eclipse ide java developers junor 最新版本的 Minecraft ForgeSRC 最新版本的 MCP http mcp ocean labs de index php MCP Releases 设置工作环境 首先将 MCP 解压缩至您所希望的位置 我个人的习惯是在桌面新建一个名为 Mods 的文件夹 并将 MCP 解压缩至那里 Forge SRC 的下载文件应该会是一个单独的名为 forge 的文件夹 将其解压缩至 MCP 目录下的 jars 文件夹里 其实只需要 Bin 和 resources 文件夹 但是无妨 由于 Forge 不在依赖 modloader 所以您不再需要安装 modloader 了 如果您计划制作支持多人生存模式 SSP 的 MOD 您必须要在 下载 minecraft server jar 文件 也放在前文所述的 jars 文件夹中 如下图所示 现在返回 MCP 目录下的 forge 文件夹 运行 install cmd 文件 如果您操作系统不同文件 名字也不同 稍等片刻 安装结束后我们继续 收尾工作 如果您在运行 install bat 或者 install sh 文件时没有任何错误 您现在应该可以开始您 的大师之路了 返回 Mcp eclipse 文件夹中 复制文件夹的地址 如 X UsersMitchDesktopModsNewModMCPeclipse 现在您可以通过在您文件解压缩至您所希 望的位置的方式安装 eclipse 安装结束之后通过双击 eclipse exe 的方式运行 eclipse 当 系统问及您的工作环境时 粘贴之前您复制的 Mcp eclipse 文件夹的位置 当加载结束后 需要您找到 Client src net minecraft src 的位置 第四章 您等待已久的一章 我希望您能多加阅读一些 Minecraft 的代码 虽然对于一个 java 造诣不精人来说 代 码有可能显得凌乱 但是不要灰心丧气 第一节 您的第一个方块 通过在 net minecraft src 包内右击任意文件 点击 New Class 将其命名为 mod YOURMODNAME 必须确保其以 mod 开头 因为只有这样系统 才会识别该文件为一个 MOD 并开始加载 无需在底部选择任何的选项 点击 Finish 完成 创建 此时您会看见一段预先写好的类代码 您的第一件事就是要扩展这个 MOD 使之成为 一个基本类 BaseMod 您可以通过添加 extends BaseMod 这样的代码完成类的声明 此时代码如下 1 package net minecraft src 2 3 public class mod YourModName extends BaseMod 4 5 复制代码 当然 此时会在 mod YOURMODNAME 处显示错误 此时将鼠标移至该错误处 在 弹出的对话框中单击 Add unimplemented methods 此时会在当前的基本类里添加两个 类函数 load 与 getVersion 您可以删除掉 TODO 这种行 在 getVersion 类函数中 您需要将 null 替换为 1 0 或者其他您喜欢的版本号 您需要保留引用 就如同需要返回一 个字符串一样 此时的代码如下所示 1 package net minecraft src 2 3 public class mod YourModName extends BaseMod 4 5 Override 6 public String getVersion 7 return 1 0 8 9 10 Override 11 public void load 12 13 14 15 复制代码 现在您终于可以开始创作您的第一份方块代码啦 在类的顶端添加下列代码 在 之内 1 public static Block yourFirstBlock new BlockTutorial blockID 0 setHardness 2 5F setStepSound Block soundWoodFootstep setBlockName blockName 复制代码 其中 名称 含义 public 表示所有类均可以访问 static 表示在类内不创建一个新的实例的条件下即可访问 详情请查阅 java 教程 Block 该变量引用 Block java yourfirstBLock 变量名 叫什么都行 new BlockTutorial 此时在 BlockTutorial 类中创建了一个新的实例 由于我们之前没有声明 因此会出错 您可以将其改为任何您喜欢的名字 只要之后的名字与其 相同就可以了 blockID 0 您所传递给 BlockTutorial 类的信息 就是方块 ID 您可以在这里将其替 换成您所希望的任何数值 特别提醒您 在最新版本的 Forge 中 可以 自动调整您的方块 ID 并将其设置到 137 到 4096 中的一个未使用过的 数值 您可以在这里查看您的 MOD 与 MOD 的兼容性 之后的 0 稍后会 为您详细阐述 现在暂且放过它 setHardness 2 5F 设置该方块的硬度为 2 5 您可以随意调整 setStepSound Block soundWoodFootstep 走在上面的声音 如果您喜欢的话 也可以将 soundWoodFootstep 改成 soundClothFootstep 或者任何你喜欢的声音 setBlockName blockName 这个变量无关紧要 只是要保证每个的名字不同就可以了 现在您已经掌握了如何新建一个 BlockTutorial 类了 当然有可能在之 前您就把这个名字改掉了 现在我们要扩展方块 我们首先需要执行 ITextureProvider 当您将如下代码复制进 其中时 可以使鼠标悬停在 ITextureProvider 处并单击导入 import 1 public class BlockTutorial extends Block implements ITextureProvider 复制代码 现在我们需要为我们之前跳过的那部分创建一个构造函数 可以在 java 教程中获得 更为详实的信息 1 public BlockTutorial int i int j 2 3 super i j Material wood 4 复制代码 名称 含义 BlockTutorial 由于是构造函数 此处需与类的名字相同 int i int j 我们在之前使用 blockID 0 的声明 更为详细的来说 表示该构造函数使用两个整数变量并将其命名为 i 和 j super 表示需要使用超类来传递方块信息 这也是问什么我们扩展这个类的缘故 可能难以理解但是请参阅 java 教程 o o i j Material wood 这是由我们的 MOD 类中继承的将要传给方块的参数 我们同时也传递了 Material wood 是因为我希 望这个方块在被镐敲击时可以更为容易地被破坏 好 现在您即将进行的步骤是添加一个 Forge 的类函数以便我们可以为 这个方块设置材质 1 public String getTextureFile 2 3 return Mic sMods CrossbowMod gui Crossbow png 4 复制代码 切记 不要更改类函数的第一行 乱修改可能覆盖或者替换类函数 这是一个用于十字弓 MOD 的例子 其中的材质存储在 minecraft jar 的相应位置中 您可以很轻松地修改您所使用的材质 但是如果指向一个空位置则无法进行加载 当然也 要保证是双引号 最后还需要一个 Forge 的类函数将该方块添加至创造模式的物品栏中 1 public void addCreativeItems ArrayList itemList 2 3 if blockID mod YourModName yourFirstBlock blockID 4 5 itemList add new ItemStack this 6 7 复制代码 当鼠标悬停至 ArrayList 时可以导入 最后一个类函数可能有些复杂 名称 含义 void 表示该函数没有返回值 addCreativeItems ArrayList itemList 类函数和构造函数的名字 不要进行修改 否则会覆盖 Forge 的类函数 if 根据真假不同返回值也不同 如果不懂请多看看教程 blockID mod YourModName yourFirstBlock blockID 逻辑表达式 如果该方块的方块 ID 与您创建的方块的方块 ID 则 继续 itemList add new ItemStack this 在创造模式中可以创建和堆叠这一方块 这条语句不懂亦无妨 之后 我们在 load 类函数中添加如下语句 1 ModLoader registerBlock yourFirstBlock 2 ModLoader addName yourFirstBlock Woohoo My first Block D 复制代码 其中 名称 含义 ModLoader registerBlock 您所调用的类函数 yourFirstBlock 您所使用的方块 确保之前声明过 ModLoader addName 调用另一个类函数 用于添加名字 yourFirstBlock Woohoo My first Block D 这里是为您的方块实例赋予名字的地方 您可以在这里写 红石灯 Redstone Lamp 楼主我要整合包 LouzhuWoyaoZhengheBao 等等 现在要做一件最为重要的事请 hx940525 如果您要查看本帖隐藏内容请回复 您已经为 Minecraft 制作了一个属于您 的 MOD 不再是 MOD 制作小白痴了 无论这个 MOD 多么粗糙和简陋 但都 是您在 MOD 制作大师之路的一个见证 希望当您在成为大师之时蓦然回首还能 记得您的第一份作品 无论如何 恭喜 您 第四章 您等待已久的一章 我希望您能多加阅读一些 Minecraft 的代码 虽然对于一个 java 造诣不精人来说 代 码有可能显得凌乱 但是不要灰心丧气 第二节 为您的方块添加材质 在这一部分教程中 将会为您讲述如何为您的方块添加材质 首先您需要一份默认的 子图 所谓 子图 就是一份可以由程序在需要时可以随时加 载的图片 在 Minecraft 中 可以从 terrain png 和 items png 中加载材质 实际上 依托 于 Forge 您所做的工作即为编辑一张属于您的 terrain png 以及 items png 并将您的 MOD 与这些子图之间建立联系 再次特意为您精心准备了两张默认的子图 items png terrain png 我们可以打开编辑软件 Photoshop Gimp Paint NET 译者强力推荐 此时 您可以看见 256 个紫色方块 现在需要做的就是按照您的喜好绘制图案 请牢记您的材质 是 16 16 的 并且按照如下方式排列 您可能很好奇为什么是从 0 开始的呢 好吧 还记得我们之前的 blockID 0 吗 其 中的 0 就是调用这个文件 如果我们在之前的文档中保持 0 不变就会在加载子图之后您 的方块将显示为蓝色的 0 方块 如果我们在代码中将 0 改为 1 则在最后您的方块将变 为红色 1 方块 当您绘制完您的方块材质后 您需要以 png 格式保存这份子图 否则 Minecraft 不会 正确加载 还记得之前的 getTextureFile 类函数么 Forge 虽然会自动进行寻找 但还 请将子图与代码放在一系列的文件夹内 打开 YourMCPFolder jars bin minecraft jar 并将 文件夹拖入其中 此时 getTextureFile 就应该在 minecraft jar 内找到您子图所在的位置 这可能有些晦涩难懂 所以我们需要测试一下您是否真正搞懂了 在我们运行客户端之前 还有一件事需要进行 需要 Forge 预加载材质 1 MinecraftForgeClient preloadTexture New Untitled 1 png 复制代码 请确保您在类函数中所输入的文件地址与 getTexture 所引用地址相同 我使用 Forge 客户端而不是用普通的 forge 类的原因是材质只是在客户端加载 不需要服务器端 提供支持 现在您就应该看到您的那个大大的 0 方块啦 P S 默认的子图文件下载地址在这里 第四章 您等待已久的一章 我希望您能多加阅读一些 Minecraft 的代码 虽然对于一个 java 造诣不精人来说 代 码有可能显得凌乱 但是不要灰心丧气 第三节 创建一份合成表 在这一节 我将为您讲述如何创建一份合成表 本章不会有任何下载内容 O O 当您已经成功地掌握了前两节的内容 您就已经基本掌握了制作 MOD 的基本知识 现在需要为那些奋斗在生存模式的人们考虑了 本节内容十分简单 仅调用一个类函数 所以您可以尝试一下能否自己一个人搞清楚 代码 我会将释义附在后面 当然 这些代码完全可以一行写完 但是写成这样子更为直 观 就好像您在用工作台进行合成一样 1 ModLoader addRecipe new ItemStack yourFirstBlock new Object 2 BBB 3 BAB 4 BBB 5 Character valueOf A Item diamond 6 Character valueOf B Block obsidian 7 复制代码 您看懂了么 您当然也可以在合成中使用您自己创建的方块或物品 举例来说 Character valueOf A yourFirstBlock 即代表之前所述的 A 为您所创建的方块 如下图所示 以下为一些在编写合成公式时的小技巧 您可以使用空格代表工作台中的空位 1 DDD I I 复制代码 您可以简化合成公式 这样子无论原材料在工作台内如何放置 只要形状正确即能合 成 木板合成工作台就是一例 1 BB BB 复制代码 您可以只使用单一原材料进行合成 也就是说放入一个该方块或物品即可合成您所希 望的物品 1 Z 复制代码 第四章 您等待已久的一章 我希望您能多加阅读一些 Minecraft 的代码 虽然对于一个 java 造诣不精人来说 代码有可能显得凌乱 但是不要灰心 丧气 第四节 生成矿藏 现在您可以能会想如何制作一份矿藏呢 如果您希望制作一份矿藏 请不要为其设置可以进行合成的要素 毕竟矿藏 是不能合成出来的 建议您重新为自己的矿物方块设计一套材质 毕竟在许多灰色的石头中间突然挖到一个蓝色大方块很是诡异 您可以 根据自己使用 photoshop 或 Gimp 的水平进行创作 甚至直接拷贝原版材质并加以修改其中的色调和饱和度也是一个不错的 而选择 还记得我们在教程之前提到的 setHardness 2 5F 么 在制作矿藏时这一参数也需要考虑在内 0 1F 意味着几乎可以 瞬间摧毁该方块 而 1000 0F 则意味着您可以挖到天荒地老 还有一点请注意 此处与您实际进行采矿无任何相关 我们稍 后会进行讲解 我们使用 generateSurface 类函数对 modloader 类函数进行覆盖 当生成世界时就会调用这个类函数 并生成您所添 加进类函数的语句 以下代码将用于您的 mod file Overriding The ModLoader Method 1 Override 2 public void generateSurface World world Random random int chunkX int chunkZ 3 4 5 复制代码 再次强调 不要做任何修改 因为您的任何改动都会带来不可知的结果 现在需要再去中添加一个循环语句 Generation For Loop 1 for int i 0 i 20 i 2 int randPosX chunkX random nextInt 16 3 int randPosY random nextInt 20 4 int randPosZ chunkZ random nextInt 16 5 new WorldGenMinable this yourFirstOre blockID 8 generate world random randPosX randPosY randPosZ 6 复制代码 名称 含义 for 表示循环 详情请参阅 java 教程 int i 0 i 20 i 默认的循环语句 您只需要关心其中的 20 就可以了 如果您将其设置为 1 就 代表该矿物如同钻石一样珍惜 而将其设置为 20 则代表如同煤那样广泛分布 您可以将其最大设置为 50 左右 int randPosX chunkX random nextInt 16 表示矿藏的确切位置其中变量 randPosX 用于存储矿藏的 X 坐标 而矿脉的实际 位置则由 1 到 16 的一个随机数与区块位置共同决定 不要更改其中的 16 int randPosY random nextInt 20 矿脉的 y 坐标由 1 到 20 的一个随机数决定 您可以将 20 改为任何一个正值 比 如矿石就将其设置为 16 而煤则为 128 int randPosZ chunkZ random nextInt 16 矿脉的 Z 坐标由变量 randPosZ 确定 矿脉的实际位置则由 1 到 16 的一个随机数 与区块位置共同决定 不要更改其中的 16 new WorldGenMinable 为 WorldGenMinable 类中添加一个新的实例 该实例主要用于控制生成 this yourFirstOre blockID 8 控制您所生成矿脉的最大矿石数量 最小值为 3 亦即每个矿脉只生成 1 块矿石 generate 在 WorldGenMinable 中调用 generate 类函数 world random randPosX randPosY randPosZ world 为生成世界的名称 可以由 delaration 类函数提供 Random 为 java 的随机场 也由 delaration 类函数提供 Random X Y Z 为三个整值 变量 用于控制矿脉的位置 我们接下来设置矿藏的硬度等级 也就是说使用何种镐开采这一种矿藏 以下为典型矿石的硬度等级 黑曜石为 3 钻 石为 2 铁矿石为 1 在您的 load 类函数中添加如下代码 Setting Harvest Level 1 MinecraftForge setBlockHarvestLevel yourFirstOre pickaxe 3 复制代码 此时您的矿藏创建之旅就临近尾声 大家请欣赏我创造的超级恶劣材质的矿藏 P S 在您重新生成一个世界后 也就是您更改了控制世界生成的变量 如果出现错误 请先检查区块生成是否正确再 行检查代码问题 d7z65 png 118 59 KB 下载次数 14 第四章 您等待已久的一章 我希望您能多加阅读一些 Minecraft 的代码 虽然对于一个 java 造诣不精人来说 代 码有可能显得凌乱 但是不要灰心丧气 第五节 添加烧炼与创建物品 在这一节 我们将要为您在上一节创建的矿藏添加烧炼物 以锭为例 因为其相对较 为简单 创建物品与创建方块相比非常类似 事实上我们只需要在方块 物品的代码中修改一 点点的地方即可 我们这次需要创建一个物品对象 New Item Object 1 public static Item yourFirstItem new ItemTutorial 280 setIconIndex 0 setItemName itemName 复制代码 与方块相比 除去使用的对象和类不同外其余完全相同 我们此时并没有使用在结构 体内添加子图的方法 而是使用 setlconindex int 类函数 setitemName 与其相同 即使 这些并没有在游戏中出现 但也应该与您的方块不同 现在我们创建 ItemTutorial 类 代码与前文所述 BlockTutorial 类的代码完全相同 您 可以自行更改类的名称 此时只需要扩展 item 类 注意并不需要覆盖 addCreativeItems 类函数 使用 Modloader addName 类函数 预加载子图 如果您方块和物品使用不同子图重 新预加载的话需要 在 load 函数中添加如下代码 Into load 1 ModLoader addSmelting yourFirstOre blockID new ItemStack yourFirstItem 复制代码 其中的第一个参数是输入端 亦即我们之前制作的那个方块 第二个参数为 itemStack 亦即我们通过熔炉烧炼出的您创建的物品 好啦 您的第一份物品已经通过熔炉烧炼而成了 其实就是一个矿石锭 这一章 虽然简单 但是却对下一节的教程非常有用 下一节我们讲述如何制作工具 第四章 您等待已久的一章 我希望您能多加阅读一些 Minecraft 的代码 虽然对于一个 java 造诣不精人来说 代 码有可能显得凌乱 但是不要灰心丧气 第四章第六节 创建一组工具 在接下来的教程中 我们主要集中于讲述如何创建一组工具 这一节要比其他各节都 要复杂 所以各位同学打起精神来 首先 我们需要为新的工具创建一个 EnumToolMaterial 在您的类中添加如下代码 注意不是在任何的类函数中 New Tool Material 1 static EnumToolMaterial BLUETOOLS EnumHelper addToolMaterial BLUE 2 171 5F 1 5 复制代码 名称 含义 EnumHelper addToolMaterial 我们所引用的 Forge 类函数 如果您在此处出现错误 请手动导入 net minecraft forge EnumHelper 以下变量可以进行更改 BLUE 材料名称 2 您所设定的工具能够正常开采的硬度等级 如黑曜石矿为 3 钻石矿为 2 铁矿为 1 171 该工具的耐久度 木质工具为 59 钻石工具为 1561 5F 使用该工具开采的速度 您可以根据如下数据进行大概地判断 木质工具 2 0F 钻石工具为 8 0F 1 该工具对实体所造成的伤害值 具体计算公式如下 该数值 4 2 如此时每击伤害为 2 5 颗心 5 可附魔性 此处不确定 石头为 5 钻石为 10 金为 22 第二步 我们需要创建一个新的物品对象 New Items 1 public static Item blueStoneShovel new BlueStoneSpade ItemID1 BLUETOOLS setIconIndex 0 setItemName customShovel 2 public static Item blueStonePickaxe new BlueStonePickaxe ItemID2 BLUETOOLS setIconIndex 1 setItemName customPickaxe 3 public static Item blueStoneAxe new BlueStoneAxe ItemID3 BLUETOOLS setIconIndex 2 setItemName customAxe 4 public static Item blueStoneHoe new BlueStoneHoe ItemID5 BLUETOOLS setIconIndex 4 setItemName customHoe 5 public static Item blueStoneSword new BlueStoneSword ItemID4 BLUETOOLS setIconIndex 3 setItemName customSword 复制代码 此时会报错 这是由于还没有新建类 BlueStoneSpade 我们接下来所要创建的类的名字 ItemID1 BLUETOOLS 为您的铲子所设置的物品 ID 请记得为您每一个工具都设置一个不同的物品 ID BLUETOOLS 是我们之前建立的 EnumToolMaterial setIconIndex int 与之前类似 用于设定物品的子图号 setItemName String 与之前类似 设定物品的内部名称 每个物品都要不同 现在创建一个新的类 此时您应该需要 5 个类了 现在我们执行下一步 扩展工具类 不是扩展 item 类 举例来说 我的蓝石铲 BlueStoneSpade 会扩展为 ItemSpade 那么蓝石斧 BlueStoneAxe 就应该扩展为 ItemAxe 以此类推 Into load 1 MinecraftForge setToolClass blueStonePickaxe pickaxe 2 2 MinecraftForge setToolClass blueStoneShovel shovel 2 3 MinecraftForge setToolClass blueStoneAxe axe 2 复制代码 MinecraftForge setToolClass 调用该类函数可以为我们的物品设置一个恰当的类 blueStonePickaxe 我们传递的镐的参数 也要记得为您的铲子 斧头进行相应的设置 pickaxe 小写 工具类型 2 之前提到的硬度等级 您之前应该通过 EnumToolMaterial 进行了硬度等级的设置 您只需要为斧 镐 铲进行相应的设置 现在使用 Modloader addName 添加名字 以及参照之前的教程添加合成表 好啦 您的蓝石系列工具就出炉啦 我认为 MOD 制作中最为复杂的部分就是绘制一 份好看的材质 少年们 用你们手中自己创建的工具挖出个大坑吧 第四章 您等待已久的一章 我希望您能多加阅读一些 Minecraft 的代码 虽然对于一个 java 造诣不精人来说 代 码有可能显得凌乱 但是不要灰心丧气 第四章第八节 添加多材质方块 什么是多材质方块 就是类似草地这样子的方块 绿色的顶部 低端是棕色的 而四 周却与上下均不相同 第一步需要为其创建材质 需要绘制至少两幅材质才可以实现多材质的功能 将其放 在同一份子图文件下 确保使用渲染软件将不同的材质渲染在同一方块上使其看起来彼此 拼接 毕竟您不希望一个带有紫色边的方块转过去一看编程绿色边了吧 在您制作成功材质后实际上代码非常简单 您只需要一个类函数即可 Magical Multi texture Method 1 Override 2 public int getBlockTextureFromSide int side 3 4 if side 1 5 6 return 5 7 8 else if side 0 9 10 return 6 11 12 else 13 14 return 4 15 16 复制代码 在这一例程中展示了一份草方块的制作过程 通过使用 getBlockTexture 类函数 我 们可以调用不同位置的子图 当您看到这一方块时 顶部 0 底部 1 四周 2 3 4 5 请确认您所看到的方块是否与其吻合 据反馈此处有问题 好啦 看到这里您已经是 MOD 制作 方面的大师了 至少在理论层面是 这样 恭喜您 O O
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!