您当前的位置:首页 >> 热点 >> 
MINECRAFT数据包-优化
来源: 哔哩哔哩      时间:2023-06-27 16:10:20

本章无任何高深的技术性问题,仅分享自己的一些经验与建议

在数据包编写过程中,难免会出现一些问题:


(资料图片仅供参考)

【A】函数、进度、配方或标签文件的命名

【B】数据包内文件夹的使用

【C】数据包编写的内容出现重复,有时复制粘贴的效率太低

【D】数据包的性能过低

(更多问题等待大家补充)

下面优先解决这4个问题

A

以下面这个数据包为例

这个function文件夹中有几个文件夹与几个独立的文件,他们的命名规律也显而易见

即:根据函数内容与功能进行命名

如game文件夹就是关于数据包内游戏的玩法

这样命名的好处是便于阅读与分类,防止在编写数据包的过程中“自我混淆”,缺点是有时名称字符可能过多,调用函数时会造成不便

所以,我们在编写时尽量避免使用文件名过长,必要时可以缩写、简写,如以多个单词首字母来命名。(为文件夹命名时也是一样的)

B & C

问题B与C常常可以共同解决。当数据包编写需要出现重复(或整体结构相同)的内容时,可以先将文件归类至文件夹中,在构造完一个完整的结构后再通过整体的复制粘贴,最后针对不同点进行修改与针对性的命名,达到提高编写效率的目的。

D

关于数据包的性能一直是一个非常重要的问题,它涉及到编写者的习惯与数学逻辑

在这里只提几点,就当是抛砖引玉

【1】尽可能少地将命令写入无条件循环(下以为例)

文件每个游戏刻都会执行,执行的命令越多,性能就低,最明显的后果是游戏卡顿,甚至可能损坏存档。

所以,尽量将命令逻辑写的更简单,省去不必要的命令,可以多写注释来帮助理清逻辑,寻找最简写法;还可以将执行内容与目的相同的命令放入一个函数文件中,以整体的执行提高性能【2】使用目标选择器时尽可能避免使用大量的@e、@a或其中的type选项

以@e为例,使用时游戏需要遍历每个实体来寻找满足条件的目标,这样做将降低性能

可以使用标签来帮助选择,减少@e的使用次数。

【3】使用完标签后可以将其移除

这是数据包中常见的一次性标签,目的是帮助选择实体并减少内存与性能的浪费,在前面几章选择目标时就有使用过。

【4】部分复杂条件的检测可以通过进度来完成

这样做可以避免在execute命令叠大量的语句与检测条件。进度的检测与执行非常特殊,它将提高数据包的性能。

(若描述或方法有误,欢迎批评指正)

最后,希望这篇文章能够帮助大家养成数据包编写时的良好习惯

标签: