扫码在手机阅读
手机阅读《Minecraft指令手册》
Minecraft指令手册

第150章如何看懂调试界面③

M—————————x————√———√——√——x

ML—————————x————√———√——x——x

可能这仍然有些难以理解,但好在,这位腐竹又搞了两个奇怪的塔:

在版本,第五行已经不是Biome了。这一行得和下面一行,即第六行一起看:

Client Light:光照强度(天空光照强度 sky,方块光照强度 block)

Server Light:光照强度(天空光照强度 sky,方块光照强度 block)

树叶--- 65

草方块---64

蜘蛛网--- 67

树叶--- 66

水--- 65

草方块--- 64

如果此时有一位管理大大从正上方路过,那么它的调试面板SH这一行将会显示:

1——SH S:67 O:65 M:66 ML:66

(因为蜘蛛网不是空气方块,所以S是67;因为蜘蛛网和水都不会挡住玩家,但树叶可以,所以O是65;因为蜘蛛网和水都不会挡住玩家,但水是液体,所以M和ML都是66)

2——SH S:67 O:66 M:66 ML:65

(因为.....所以S是67;因为树叶会挡住玩家,但蜘蛛网不会,所以O和M都是66;因为蜘蛛网不会挡住玩家,树叶不属于ML的计算范围,水是液体,所以ML是65)

理解了吧?不理解就再看一遍。

第九行和第十行即Biome(生物群系)和Local Difficultly(区域难度)。

第十一行,即SC一行,是在版本中新加入的一行参数,作用是显示生物生成的详细信息:

SC:xx——当前可以生成生物的区块数量,似乎与渲染距离没有关系

M:xx——当前所有已生成的生物中,敌对生物的总数量

C:xx——当前所有已生成的生物中,动物的总数量

A:xx——当前所有已生成的生物中,环境生物(比如蝙蝠)的总数量

W:xx——当前所有已生成的生物中,水生动物的总数量

M:xx——当前所有已生成的生物中,其他类型的生物的总数量

最后一行,也就是Sounds行:

Sounds:xx/xxx + x/x(Mood xx%)

Sounds一行主要是关于游戏声音。Minecraft的游戏声音大致可以分为三类:

普通音效、环境音效、背景音乐

普通音效——游戏中的大部分声音是普通音效,比如放置方块、怪物/动物发出声音、脚步声等都算普通音效

环境音效——环境音效一般是指在特定场景下播放的声音,说白点就是你在挖矿的时候听到的怪声(晚上玩怪恐怖的)。环境音效除了在洞穴里有,还有在水下和在下界的环境音效。

背景音乐——不用多说,C418的音乐真好听。

加号的左边即是普通音效,具体是:

当前正在播放的普通音效数量/可以播放的普通音效数量上限

右边是环境音效,只不过此环境音效还包括了唱片机播放的音乐和游戏背景音乐(或者更准确的来讲应该使用英文Minecraft Wiki的streamed sounds):

当前正在播放的环境音效数量/可以播放的环境音效数量上限

在这一串参数后面,还有一个:

Mood xx%

这个东西目前中文Wiki上没有说明。作者将这东西放进百度生草机里搅拌了一下,得出来了:

情绪 xx%

生草机出来的东西准不准不知道,但这东西绝对跟你的情绪有关。

这东西的百分比后面有一个算法:Mood algorithm

Mood 算法大致的代码(伪)是这样的:

tickDelay = 6000

maxLightLevel = 15

block = select a random block in a 17x17x17 block cube centered around the playe

skyLight = block.

if (skyLight0):

mood = mood -(skyLight / maxLightLevel)*

else:

blockLight = block.

mood = mood -(blockLight - 1)/ tickDelay

if (mood ≥ 1.0):

player.

mood = 0.0

else if (mood0):

mood = 0.0

翻译:

声明“更新情绪”方法(情绪):

设定变量“游戏刻延迟”值为6000

设定变量“最大光照等级”值为15

在以玩家为中心的17x17x17的立方体中随机选定一个方块

获取该方块的天空光照等级

如果(天空光照等级大于0)

设定变量“情绪”的值=情绪-(天空光照等级÷ 最大光照等级)x

否则

获取该方块的方块光照等级

设定变量“情绪”的值=情绪-(方块光照等级- 1)÷游戏刻延迟

如果(情绪大于等于1.0)

执行玩家类方法“游戏里诡异的声音”

设定变量“情绪”的值为0.0

否则如果(情绪小于0)

设定变量“情绪”的值为0.0

为了让你能够真正理解这算法是怎么算的,我们来举个栗子。

假设此时你正在矿洞里挖矿。在上一游戏刻中,你的情绪值为(Mood 99%),如果此刻游戏随机到了你正前方五格的方块,那么:

游戏通过执行这个方法(Java语言中的方法类似于Minecraft中的函数,将一串代码包起来成为一个方法,需要执行的时候再调用),获取到了这个方块的天空光照等级为0。

因为这个方块的天空光照等级是0,所以游戏又执行了这个方法,获取到了这个方块的方块光照等级,发现也是0。

于是游戏做了一个简单的运算:

mood = -(0-1)÷6000

=-(-1)÷6000

=-(-)

=+

此时游戏发现大于1,所以执行了方法,然后你就听到了一辆地铁驶过的声音(Cave 11)。

但如果这个方块的方块光照等级大于等于1,或者这个方块的天空光照大于0,那么mood值反而会减少一些或不增不减,因为如果仔细观察上面的代码,你会发现计算mood时都是减法,要让mood增加,必须要让减数为负数,各种情况下,只有天空和方块光照等级都为0的情况下才能得出负数。

Mood算法每游戏刻都会执行一遍,每次执行最多增加1/6000。也就是说,在极端的情况下,即你完全置身于黑暗之中,Mood也需要每五分钟才能够轮回一次。

说了这么多,那么这个Mood xx%到底有什么用?

看一下上面的假设就知道了,当Mood到100%也就是你的情绪达到了顶峰时,游戏就会突然给你随机放一个环境音效,把你吓一跳。

嗯.......不愧是Mojang,把玩家的情绪拿捏得明明白白的。

到这儿。左边的第二方阵算是彻底研究完了,但本章还没有结束。

版本,左边新出现了个第三方阵,这个第三方阵主要是关于调试本身的信息,它长这个样子:

(版本之前)

Debug:Pie [shift]:hidden FPS [alt]:hidden

For help:press F3 + Q

(版本之后)

Debug:Pie [shift]:hidden FPS + TPS [alt]:hidden

For help:press F3 + Q

第一行Debug主要是一些关于调试界面的参数。Pie指的是饼图,这东西可以通过按shift + F3显示(visible),默认是隐藏(hidden)。

什么?你说按了没用?

哦,这东西得这样按出来:

第一步,按住shift,由于和游戏按键冲突,按住时会蹲下或向下飞行。如果此时调试界面已打开,请先关闭调试界面。

第二步,继续按住shift,同时另一个手指按住F3。

第三步,两个手指同时放开。看,饼图出来了!(这饼图小得字都看不清啊)

FPS(版本之后还有一个TPS,即Ticks Per Send每秒传输刻数)指的是帧(刻)生成时间柱状图,可以按alt + F3显示。在版本之前,这儿只有一个柱状图。这个柱状图有两条参考线,一个参考线在最上面,代表30fps;另一个在中间,代表60fps。这个柱状图的柱子越低,即代表每帧运算的时间越快,FPS越高。

在版本之前,这个柱状图很简陋,但相对于之后的版本,多了一个东西:

xx MB/s

作者猜测这可能跟读写速度有关,可能是内存的读写速度。

版本更新后,这个柱状图就好看多了,首先它变大了,其次它有更丰富的颜色了——柱子越矮越绿,越高越红。

版本更新后,这儿又多了个TPS的生成时间柱状图,看法和FPS的柱子差不多。同时,柱状图上面会显示当前最低和最高计算用时,单位为毫秒。

上面所述的两个附加调试图在关闭调试界面后,如果再打开调试界面,那么将会又一次隐藏。你可能以为我要说如何保持它默认开启,但可惜不是,因为没有这个功能。我要说的是:如何一次性将两个图表都打开。

你只需要按下shift + alt + F3即可。

第二行For help相信大家都看得懂,这就类似于软件中的“获取帮助”,这一行就是提醒你按F3 + Q可以了解更多东西。

具体有什么东西如下:

[?]F3 + A:重新加载所有区块

[1.8]F3 + B:打开或关闭实体的碰撞箱(白色线条)、朝向(蓝色线条)和生物的视线高度(红色线条)信息。

[?]F3 + C:短按以/execute指令的形式复制玩家本身的坐标、旋转角度信息[及之后]:

/execute in minecraft:overworld run tp s......

长按10秒以使Minecraft游戏本身强制性崩溃

Ctrl + F3 + C:按住10秒以使Java本身强制性崩溃(有些键盘需要使用右Ctrl)

[?]F3 + D:清空聊天记录,但仍然可以通过上下键查看之前输入过的指令和消息

[1.9]F3 + F:使客户端渲染距离+1(范围为232)

[1.9]F3 + shift + F:使客户端渲染距离-1(范围为232)

F3 + G:打开或关闭区块边界(红色,玩家所处区块为黄色)、玩家所处区块区段边界(蓝色)信息

F3 + H:打开或关闭高级提示框(即显示物品详细信息,如物品ID、NBT标签)

F3 + I:将玩家所注视的方块或实体在服务端的信息复制下来,具体如下。

方块:/setblock 坐标信息,方块ID[方块状态

实体:/summon 实体ID,实体坐标,实体NBT

shift + F3 + I:将玩家所注视的方块或实体在客户端的信息复制下来。

[?|]F3 + L:Wiki上说是“生成、保存性能分析数据”。在版本,按住F3 +L会显示“正在加载可见区块”,但实际啥也没有发生。

[1.9|需要执行/gamemode权限]F3 + N:在上一个游戏模式和旁观模式切换[之后]在创造模式和旁观模式中切换[及之前

F3 + P:开启或关闭当Minecraft窗口没被选中时自动暂停的功能

[1.9]F3 + Q:显示帮助列表

[?1.9]F3 + S:重新加载声音

[?]F3 + T:重新加载所有资源包(包括原版资源包)和声音

[|需要执行/gamemode权限]F3 + F4:在四种模式中切换,可以使用鼠标选择或按F4下一个,松开F3即切换到选定模式

F3 + Esc:暂停游戏而不显示菜单,多人模式无法暂停

shift + F3:显示饼状图

alt + F3:显示柱状图

shift +alt + F3:我全都要显示

到这里,调试界面左边这一栏才算介绍完成。

本章到此结束。

不难发现,新版本是将Light一行拆成了客户端光照强度(Client Light)和服务端光照强度(Server Light),实际作用和原本的Light一样,只不过分成了两端。比较奇怪的是,当你并没有在玩服务器而是在单人游戏时,Server Light还是会显示,只不过会显示成:

Server Light:(与上一行的天空光照强度一样 sky,与上一行的方块光照强度一样 block)

S——————————x————√———√——√——√

O —————————x————√———x——√——x

CH S:212,M:64

在上一章中,作者提到了调试界面左边第二阵第四行之后的内容,在到版本期间发生了极大的变化。这一章,我们就要了解,到底发生了什么变化?

嗯,所以说为什么Mojang不直接把它给隐藏掉呢?

第六行下面的第七行CH和第八行SH,是新版本新添加的一对兄弟,也需要一起看:

CH和SH都有S和M这两个参数。S的作用是显示玩家当前所处位置(X和Z坐标)最高的非空气方块的方块的Y坐标信息。M是显示玩家当前所处位置(X和Z坐标)最高的任意液体或会挡住你的方块的Y坐标信息。

因为蜘蛛网并不会挡住玩家,它本身也不是个液体,导致并不会被M参数算到。但蜘蛛网并不是个空气方块,S参数便记录了它的坐标,所以最终得出了这个结果。

SH在CH的基础上还有O和ML这两个参数(版本还多了个东西在S和O之间,只不过目前在预览版中显示为null:xx),但这两位并不适合单独介绍,而是应该和刚才那两位,搞一个表格(建议电脑或平板上观看):

参数名/方块类型——空气方块—挡人方块—液体—树叶—其他

SH S:xx O:xx M:xx ML:xx

这两行的作用差不多,其用处都是显示玩家当前位置(X和Z坐标)最高的特定方块的Y坐标信息,区别就在于一个是客户端的信息(Client Highest)一个是服务端的信息(Server Highest)。

蜘蛛网--- 67

水--- 66

M这个参数可能会比较难以理解。那就举个例子:

假设一个服务器的腐竹,由于服务器没人玩,很无聊,就用蜘蛛网从地上一直搭(创造模式)搭到Y坐标为212的地方。此时如果有一位玩家路过这个服务器,并且从蜘蛛网下面走了过去,那么在穿过蜘蛛网的时候,它的CH一行会显示为:

CH S:xx M:xx

  • 加入收藏
  • 目录
  • A+
  • A-