加号的左边即是普通音效,具体是:
当前正在播放的普通音效数量/可以播放的普通音效数量上限
右边是环境音效,只不过此环境音效还包括了唱片机播放的音乐和游戏背景音乐(或者更准确的来讲应该使用英文Minecraft Wiki的streamed sounds):
当前正在播放的环境音效数量/可以播放的环境音效数量上限
在这一串参数后面,还有一个:
Mood xx%
这个东西目前中文Wiki上没有说明。作者将这东西放进百度生草机里搅拌了一下,得出来了:
情绪 xx%
生草机出来的东西准不准不知道,但这东西绝对跟你的情绪有关。
这东西的百分比后面有一个算法:Mood algorithm
Mood 算法大致的代码(伪)是这样的:
updateMood(mood):
tickDelay = 6000
maxLightLevel = 15
block = select a random block in a 17×17×17 block cube centered around the player
skyLight = block.getSkyLightLevel if (skyLight > 0):
mood = mood -(skyLight / maxLightLevel)* 0.015
else:
blockLight = block.getBlockLightLevel mood = mood -(blockLight - 1)/ tickDelay
if (mood ≥ 1.0):
player.playSpookySound mood = 0.0
else if (mood < 0):
mood = 0.0
翻译:
声明“更新情绪”方法(情绪):
设定变量“游戏刻延迟”值为6000
设定变量“最大光照等级”值为15
在以玩家为中心的17×17×17的立方体中随机选定一个方块
获取该方块的天空光照等级
如果(天空光照等级大于0)
设定变量“情绪”的值=情绪-(天空光照等级÷ 最大光照等级)× 0.015
否则
获取该方块的方块光照等级
设定变量“情绪”的值=情绪-(方块光照等级- 1)÷游戏刻延迟
如果(情绪大于等于1.0)
执行玩家类方法“游戏里诡异的声音”
设定变量“情绪”的值为0.0
否则如果(情绪小于0)
设定变量“情绪”的值为0.0
为了让你能够真正理解这算法是怎么算的,我们来举个栗子。
假设此时你正在矿洞里挖矿。在上一游戏刻中,你的情绪值为0.(Mood 99%),如果此刻游戏随机到了你正前方五格的方块,那么:
游戏通过执行block.getSkyLightLevel这个方法(Java语言中的方法类似于Minecraft中的函数,将一串代码包起来成为一个方法,需要执行的时候再调用),获取到了这个方块的天空光照等级为0。
因为这个方块的天空光照等级是0,所以游戏又执行了block.getBlockLightLevel这个方法,获取到了这个方块的方块光照等级,发现也是0。
于是游戏做了一个简单的运算:
mood = 0.-(0-1)÷6000
=0.-(-1)÷6000
=0.-(-0.000)
=0.+0.000
=1.000
这章没有结束,请点击下一页继续阅读!
此时游戏发现1.000大于1,所以执行了player.playSpookySound方法,然后你就听到了一辆地铁驶过的声音(Cave 11)。
但如果这个方块的方块光照等级大于等于1,或者这个方块的天空光照大于0,那么mood值反而会减少一些或不增不减,因为如果仔细观察上面的代码,你会发现计算mood时都是减法,要让mood增加,必须要让减数为负数,各种情况下,只有天空和方块光照等级都为0的情况下才能得出负数。
Mood算法每游戏刻都会执行一遍,每次执行最多增加1/6000。也就是说,在极端的情况下,即你完全置身于黑暗之中,Mood也需要每五分钟才能够轮回一次。
说了这么多,那么这个Mood xx%到底有什么用?
看一下上面的假设就知道了,当Mood到100%也就是你的情绪达到了顶峰时,游戏就会突然给你随机放一个环境音效,把你吓一跳。