第一百五十一章 如何看懂调试界面 ④
打开调试界面,你会发现你的准心出现了三条颜色不一样的线。
这三条线朝向的方向都是XYZ的正方向,其中红色的是X轴,蓝色的是Z轴,绿色的是Y轴。
这可比看Facing那一行来判断坐标正负有用多了(Mojang啊你为什么一定要用br /ositive和negative啊,用+和-难道不香吗?)
前三章的研究主要是针对左侧一栏,不难发现左侧一栏更多是关于游戏的信息。接下来我们要研究右侧一栏,这个右侧一栏主要是关于客户端的硬件信息,毕竟硬件决定了软件的上限嘛。
在1.8版本,右侧一共有两个方阵。第一个方阵主要是关于游戏的Java版本和内存使用情况:
Java:1.xx.x_xx 32bit/64bit——显示Java的版本号和位数
Mem:xx%当前占用内存/占用内存上限MB——显示当前内存占用内存最大值的百分比,以及具体占用的内存量/设定占用内存的最大值。
Allocated:xx%已分配内存——已分配给游戏的内存相对于内存上限的百分比和具体的值
这里顺带讲一下,什么是内存以及内存和硬盘的区别。
但凡是个计算机,肯定有不止一个存储装置。此时你估计会问:为什么说不止一个呢?存储装置不就是硬盘或SD卡吗?
NoNoNo,存储装置不只是指硬盘和SD卡,这两个东西只是存储装置的一大类,特点是读写速度快、断电不会丢失数据、保存时间长、容量大,主要作用是存储各种各样的资料,比如系统资料,软件数据、你的学习资料等。总之,硬盘和SD卡就相当于计算机的长期记忆。
另一大类则是内存(民间里也称“运存”)。内存也是每个计算机必须要有的,所以一个计算机不止有一个存储装置(况且还有显存和CPU缓存呢)。内存有如下特点:
①读写速度特快,比硬盘快不知道多少倍
②使用电力存储,一停电立马GG
③容量一般相对于硬盘来说很小
内存最主要的用途是存放程序在运行时产生的临时数据。一个程序想要运行,必须要先将要运行的东西从硬盘读取出来存到内存中,然后再经CPU缓存给CPU运行(CPU缓存是CPU和内存数据交换的过渡区,一般有三个区,分别是L1、L2和L3。CPU缓存虽然容量极小,但读写速度超级快,比内存都要快许多)。如果这个软件被关闭,那么关于这个软件的内存数据将会被清除。
这就是为什么当你的老师上完课后,在没有关闭PPT的情况下直接把U盘拔出带走PPT还能正常播放甚至另存为的原因,因为软件在运行该文件时,已经把这个文件从U盘拷贝到内存里了。
游戏对内存的使用也是一样的。如果你在Minecraft中运行太多的指令、放太多的实体、一下子改变太多的方块、加太多的模组以及使用太高清的材质包时,都会占用大量内存。
(所以,以后如果再看到那种超高清材质包的视频,千万别只组团偷显卡,内存也要偷,不然游戏还没进去就“:(你的电脑遇到问题,需要重新启动。我们只收集某些错误信息,然后为你重新启动。(完成 0%)”)
也就是说,内存就相当于计算机的短期记忆。
但或许你还不懂已分配内存、当前占用内存和设定占用内存最大值的区别。已分配内存就是计算机分配给程序的内存空间大小,这个大小是动态变化的,具体是由该程序实际占用内存大小来决定。而占用内存大小的上限则是程序给自己设定的一个内存占用限度,并不等于计算机实际分配给程序的内存空间大小。
接下来我们来看看第二个方阵,这个方阵主要是关于你的显卡、显示屏信息:
Disbr /lay:aaaa×bbbb (显卡品牌名称)——即你的Minecraft窗口分辨率和显卡品牌
显卡名称,显卡支持的东西
显卡驱动程序版本
Minecraft Java1.8版本到1.12.2版本期间,新更新了一个CPU方阵将Disbr /lay这一方阵挤到了第三去。这个CPU方阵在1.12.2版本时长这样:
Native:xxx/xxxxMB——Java虚拟机目前使用内存和虚拟机内存使用上限
CPU:核心数,品牌和型号,运行速度(GHz)
Native这一行作者在写作时还在,隔了几天再次打开不知怎么就没掉了。关于Native内存和Java虚拟机的更多内容作者这边就不细讲了,去csdn有一篇文章叫《java native内存_JVM Heabr / Memory和Native Memory》(作者是“海阔山高人为峰”)那里或上搜索引擎了解。
到这儿,右侧一行也算是基本结束了.......
真的结束了吗?
现在,请你看向任何一个非气态方块。在1.13版本之前,如果你看到了固态方块,那右侧一栏就会显示关于这个方块的信息:
命名空间:方块ID
方块状态:状态值
方块状态:状态值
其中,第一行的方块名绝对会显示,第二行开始就是该方块的方块状态。
什么是方块状态?在之前的章节中我们已经见到过很多次,但大多数时候都是一笔带过。由于接下来一两卷就要开始详细了解方块,这儿就先简单了解一下。
方块状态,正如其名,就是方块本身所处的状态,是进一步定义一个方块的附加数据。朝向就是最常见的方块状态之一。
如果你准心瞄准到了草方块,就会显示这些信息:
minecraft:grass
snowy:false
其中,snowy:false就是这个方块的方块状态。
snowy状态的值是个布尔值,当值为true时草方块就会变成“雪方块”。
有一些常见的方块状态,知道这些不光是在指令方面有大用,甚至在生存、红石方面都有许多用处:
facing——朝向,接受north(北)、south(南)、east(东)、west(西)、ubr /(上)、down(下)
level——有不同意思,接受数值。为液体时作为液体方块扩撒的等级,每扩散一次-1,直到为0。为堆肥桶和炼药锅时作为填积的厚度等级。
age和stage——一般作为植物或方块的生长状态或等级,大部分方块的该状态会在随机刻后增加。如马铃薯的age就接受0到7,0~1、2~3、4~6和7分别为四个生长阶段。
在1.13版本之后,Mojang加入了查看液体方块信息的功能,这一部分就发生了大改动,变成这个样子:
Targeted Block
命名空间:方块ID
该方块的方块状态(方块状态:值)
该方块的方块标签(#命名空间:标签名)
Targeted Fluid
命名空间:液体方块ID
该液体的方块状态(方块状态:值)
该液体的方块标签(#命名空间:标签名)
不难发现,在1.13及以上版本多了方块标签。什么是方块标签?这和我们的记分板标签(tag)差不多,都是通过给特定的实体、方块赋予特定标签,以使特定时候能调用。但方块标签和记分板标签有一点不同——前者是默认就存在的,后者需要手动添加。
比如我们的草方块,如果在1.13.2版本中看向它,那么将会显示:
Targeted Block
minecraft:grass_block
snowy:false
#minecraft:enderman_holdable
#minecraft:valid_sbr /awn
具有enderman_holdable标签的方块可以被末影人拿起,你看向西瓜也会发现其具有该标签。
具有valid_sbr /awn标签的方块即是玩家的有效出生位置(?)。
在前两章中,我们曾发现Looking at一行在1.16版本中没掉了。那么Looking at的信息去哪了呢?
和右侧的Targeted Block、Targeted Fluid合并变成了:
Targeted Block:X,Y,Z
........
Targeted Fluid:X,Y,Z
........
到这儿,我们整个调试界面也算是讲完了,本章也算结束了。
(唉作者,你咋隔了快一个月才更新了呢?)
(哦,原因是因为最近在对前面的章节大修,你此时如果去翻前面的内容,会发现从序言开始一直到第三十九章大部分章节都有大改。目前的目标是修到第九十章,可能至少还要再修一个月吧,毕竟一年半过去Minecraft更新的内容还是蛮多的)
(对了,修改后的章节增加了许多指令的例子,其中不妨有及其有用的指令哦!)