少走弯路!超全mc模组制作入门指南,看完明白了!【Minecraft 模组开发教程】

您所在的位置:网站首页 我的世界模组制作器网易版下载 少走弯路!超全mc模组制作入门指南,看完明白了!【Minecraft 模组开发教程】

少走弯路!超全mc模组制作入门指南,看完明白了!【Minecraft 模组开发教程】

2024-07-17 06:24| 来源: 网络整理| 查看: 265

我的世界开发者中文指南(必看)

关于基岩版的Mod问题:基岩版MC里有Mod吗?_bilibili

现在MCreator功能还不错(用这个不用写代码)自定义生物、维度甚至是粒子效果都有了。如果模组主要是往游戏里加东西,不怎么改原版游戏机制,且体量不大,是可以考虑的。但真正想要做好还得要老老实实写代码。

Java版(除MCreator)开发学习路线 0. 如果有这些会更轻松 具有基本的英语能力(如词汇3k+)了解基础的数学知识(中学水平够用)具有一定的编程思维或理科思维,不然有可能学不太明白Java 1. Java基础

初学者可看《Java从入门到精通》、菜鸟教程

基本语法:变量和数据类型、运算符、条件、循环、函数等类和面向对象(精髓)(封装、继承、多态、抽象类和接口、枚举类等)Number和Math类、String和StringBuffer、Stream&File&IO、各种容器泛型、注解、Java8新特性、异常、线程等 Java不算难,如果学过任何一门编程语言会更轻松,尤其是C/C++/C# 特别注意 Java8新特性、泛型,不少初学者搞不太懂,影响开发 推荐Java8新特性通俗详解专栏 2. API

学完基础之后,可以做模组了。建议先跟着教学视频一步步走,等会做一些基本的东西之后,再看官方文档

想进阶必须要看官方文档、游戏和其他模组作者的代码

初学者不好理解/忽略的点: 服务端和客户端的概念

MC游戏端分为两个端:服务端(Server)和客户端(Client)

这样做主要是为了多人游戏考虑

服务端主要负责游戏逻辑处理客户端主要负责画面和音效

两个端之间需要通信,通过S2C(Server To Client)和C2S(Client To Server)

即使是单人本地游戏,两个端都会运作

Mixin

用于修改游戏代码

Fabric Mixin参考:Mixin Examples [Fabric Wiki]

初学者容易弄不明白,可以看这篇文章搞定

常用注解 @Shadow:影射原来的类的成员,用于引用原类的变量或方法 @Unique:表示该成员不是原来类的,而是自己写的(如果Mixin类的成员未加任何注解,则会覆盖原类的成员) @Inject:向代码注入内容 CallbackInfo  cancel()无返回值取消  get/setReturnValue获取和更改返回值 @Redirect:重定向(替换)方法调用 @ModifyArg:修改调用某方法的参数 AccessWidener

不知道(Neo)Forge是否有

用于拓宽类内私有/保护成员的访问权限

本人Fabric开发经验分享 IDE 搭建 / 配置开发环境

Forge搭建可直接下载@耗子的离线包(百度搜)

Fabric看这篇,注意事项:

1. 强烈推荐IntelliJ IDEA

2. 重中之重:一定要安装Java17(+) JDK!!,否则环境搭建失败

3. fabric-example-mod

- build.properties

- 选择稳定版下载

- 有主类路径,不要填错,否则main找不到游戏报错

- 修改LICENSE、README.md

Could not execute entrypoint stage 'main' due to errors 修改fabric.mod.json / 注册物品问题——详见错误日志 项目文件夹 fabric-example-mod的license要改如果intellij 卡在Scanning files to index... Scanning library 'Gradle: commons-io' 那就多次重启软件 重新加载资源和依赖项

——发现Minecraft Client / Server冒“×”的解决方法

或右上角Minecraft Client - Edit - Build and run第一行 (依赖项存在的情况下,可以通过Gradle - Tasks - Fabric - runClient是否能成功运行来检验)

导出Mod

Gradle(右上角大象图标) - Tasks - build - build

API Mixin @Unique注解 org.spongepowered.asm.mixin.Unique This annotation, when applied to a member method or field in a mixin, indicates that the member  should never overwrite a matching member in the target class. This indicates that the member differs from the normal "overlay-like" behaviour of mixins in general, and should only ever be added to the target. For public fields, the annotation has no effect. AccessWidener 用于直接访问反编译源码中的非 public对象 fabric.mod.json添加 ... "accessWidener": "your_mod_id_here.accesswidener ", ...build.gradle手动添加

xxx has protected/private access in xxx 选择Copy AW entry,则可快速生成access widener表达式如果显示另一个程序正在使用或文件占用在运行ValidateAccessWidener前重启IntelliJ IDEA,如果无效再重启电脑可能是access widener语法错误,而不是显示的问题本身,如方法名和参数类型之间不要忘了隔开field descriptors参考 DescriptorPrimitiveDescriptionBbytesigned byteCcharUnicode character code point in the Basic Multilingual Plane, encoded with UTF-16Ddoubledouble-precision floating-point valueFfloatsingle-precision floating-point valueIintsigned integerJlongsigned long integerL_ClassName_;referencean instance of ClassNameSshortsigned shortZbooleantrue or false[referenceone array dimension 修改构造函数

构造函数:注意不能mixin到super前面,否则报错退出

@Inject(method = "", at = @At("TAIL")) 资源包 改变色调

图像 - 调整 - 可选颜色

获取音效+处理 英:freesound.org 查看网页原代码,搜索.wav .mp3 .ogg中:tosound.com音效包制作音频压缩 语言

教程 制作自定义语言包:从入门到入完门 (转载备份) indexes文件选一个,如json

这六个翻译神器可真猛,秒杀一众翻译软件,好用到犯规! 百度和谷歌垃圾,推荐DeepL,带AI,中翻英依然强(但目前2023韩语、捷克语不太好用?)

有没有推荐的繁简体转换器? 在线智能简繁转换

JsonBuddy Desktop与BabelEdit翻译language.json语言文件简要教程 暂时用不上

查找语言简称:使用必应搜索 颜文字和转义换行符翻译容易出问题

联机 Connection refused: no further information

将端口开放为25565



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3