怎么制作mod

上传人:小** 文档编号:88855579 上传时间:2019-05-11 格式:DOC 页数:23 大小:839.99KB
返回 下载 相关 举报
怎么制作mod_第1页
第1页 / 共23页
怎么制作mod_第2页
第2页 / 共23页
怎么制作mod_第3页
第3页 / 共23页
怎么制作mod_第4页
第4页 / 共23页
怎么制作mod_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《怎么制作mod》由会员分享,可在线阅读,更多相关《怎么制作mod(23页珍藏版)》请在金锄头文库上搜索。

1、java是什么?java是一门计算机语言,我相信很多人都知道这一事实,这很可能是由于您曾经玩过由这一语言编译而成的游戏。Java是一门面向对象的计算机语言,也就是说它由两主要部分组成:字段和方法。那什么是字段和方法呢?我们以人为例:我们可以把一个人比作一个工程(o(_)o好像有些类比不当)。在这个工程中会有许多包,比如“human.body.head”。在每个包中会包含好多类(我们之后详细阐述),比如说ear.java就是一个类。现在我们已经知道了字段和方法,那么什么是类呢?我们以之前的ear.java为例,这个耳朵类可以诸如“耳垂高度”和“音量”等特征,所以一个解决方案是建立如“listen

2、To()”和moveEars()等函数。您可能会问这到底是什么呀,也可能会问这些和Minecraft到底有神马关系?好吧,以下就是一个例子:方法/函数举例1. public int getMaxHealth()2. 3. return 20;4. 复制代码这是minecraft中EntityCreeper.java中的一段代码。这段代码非常基本,您只需关心的是如果把返回值20改为其它的什么东西会发生什么呢?当然您有可能会猜测:嗯,有可能会带来我砍苦力怕多少刀它会死呢?其中的public表示其它的类也可以调用该函数,int表示该函数为整型函数(在+/-2,147,483,647之间的所有十进制整

3、数)。getMaxHealth()为函数名,return 20表示返回值,比如如果有人问这个类:“苦力怕的最大生命值是多少呀?”,它将回答:“是20”。由于我们在函数头声明了int,所以我们的返回值必须为整数。字段/变量举例1. private double velocityY;复制代码这是在EntityMinecart类中所生命的一个字段。其中private表示只有这个类才可以访问这个字段,double表示为一个十进制数,velocityY为这个变量的变量名(字段和变量有时表示同一个东西)。 从简单之处做起!我见过好多好多人再问楼主类似的问题:“如何让NPC自动建筑、谈话、打猎、去杀末影之龙

4、呀?”。MOD制作是一个长期的过程,您也不可能马上就成为高手。正如我之前谈过的,您可以通过学习一些Java基础知识来了解一些知识,这样可以使您更快地成为高手。所以说要从简单之处入手,先试着为Minecraft添加一个方块吧。 要有兴趣!请注意,为您喜欢的游戏制作MOD并不应该成为您的一份工作,在MOD制作之时您应该能获得成就感与愉悦。虽然当您不能修正错误,或者您的MOD的反响没有预想中 高时难免会灰心丧气,但这只是一时之举。如果您经常性地感到厌倦并没有从中获得乐趣,或许玩Minecraft更加适合您吧在这章开始之前呢,我们需要提一下forge。我个人相比较modloader而言更倾向于forg

5、e。您可以在安装之前阅读关于Forge与modloader之间的比较,但是记得总结。有许多工具有助于提高您MOD的兼容性并使您的MOD制作之路更为轻松。Forge可以通过更新支持不同的版本但是modloader只支持对应的版本。所以不要犹豫通过安装FML和其他一些工具,您可以不需要安装那繁多的API。如果您有任何问题,请移驾至并加入#MinecraftForge。请参阅本文:http:/ 文件夹。可以通过备份您当前.minecraft文件夹,并通过点击force update来获得纯净的minecraft文件下载您在开始MOD制作之前还需要下载一下这三样东西: 最新版本的Eclipse:htt

6、p:/www.eclipse.org/downloads/packages/eclipse-ide-java-developers/junor 最新版本的Minecraft ForgeSRC:http:/ 最新版本的MCP:http:/mcp.ocean-labs.de/index.php/MCP_Releases设置工作环境首先将MCP解压缩至您所希望的位置,我个人的习惯是在桌面新建一个名为Mods的文件夹,并将MCP解压缩至那里。Forge SRC的下载文件应该会是一个单独的名为forge的文件夹,将其解压缩至MCP目录下的“jars”文件夹里(其实只需要Bin和resources文件夹但

7、是无妨)。由于Forge不在依赖modloader,所以您不再需要安装modloader了。如果您计划制作支持多人生存模式(SSP)的MOD,您必须要在http:/ -Class。将其命名为“mod_YOURMODNAME”,必须确保其以“mod_”开头,因为只有这样系统才会识别该文件为一个MOD并开始加载。无需在底部选择任何的选项,点击Finish完成创建。此时您会看见一段预先写好的类代码。您的第一件事就是要扩展这个MOD使之成为一个基本类(BaseMod)。您可以通过添加“extends BaseMod”这样的代码完成类的声明,此时代码如下:1. package net.minecraft

8、.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.minecr

9、aft.src;2.3. public class mod_YourModName extends BaseMod 4.5. Override6. public String getVersion() 7. return 1.0;8. 9.10. Override11. public void load() 12. 13. 14.15. 复制代码现在您终于可以开始创作您的第一份方块代码啦在类的顶端添加下列代码(在“”之内):1. public static Block yourFirstBlock = new BlockTutorial(blockID, 0).setHardness(2.5F

10、).setStepSound(Block.soundWoodFootstep).setBlockName(blockName);复制代码其中:名称含义public表示所有类均可以访问。static表示在类内不创建一个新的实例的条件下即可访问(详情请查阅java教程)Block该变量引用“Block.java”yourfirstBLock变量名,叫什么都行= new BlockTutorial此时在BlockTutorial类中创建了一个新的实例,由于我们之前没有声明,因此会出错。您可以将其改为任何您喜欢的名字,只要之后的名字与其相同就可以了。(blockID, 0)您所传递给BlockTuto

11、rial类的信息,就是方块ID。您可以在这里将其替换成您所希望的任何数值。特别提醒您,在最新版本的Forge中,可以自动调整您的方块ID,并将其设置到137到4096中的一个未使用过的数值。您可以在这里查看您的MOD与MOD的兼容性。之后的0稍后会为您详细阐述,现在暂且放过它。.setHardness(2.5F)设置该方块的硬度为2.5,您可以随意调整。.setStepSound(Block.soundWoodFootstep) 走在上面的声音,如果您喜欢的话,也可以将“soundWoodFootstep”改成“soundClothFootstep”或者任何你喜欢的声音。.setBlockNa

12、me(blockName);这个变量无关紧要,只是要保证每个的名字不同就可以了。现在您已经掌握了如何新建一个BlockTutorial类了,当然有可能在之前您就把这个名字改掉了现在我们要扩展方块,我们首先需要执行ITextureProvider,当您将如下代码复制进其中时,可以使鼠标悬停在ITextureProvider处并单击导入(import)。1. public class BlockTutorial extends Block implements ITextureProvider 复制代码现在我们需要为我们之前跳过的那部分创建一个构造函数(可以在java教程中获得更为详实的信息)。1

13、. 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.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号