Terraria Wiki
注册
Advertisement

泰拉瑞亚中的一种机制,会影响各种物体的运动以及沙尘暴的发生。

风速的范围是在 0 到 60 mph 之间。风可以从东面或西面吹来。诸如天气收音机之类的信息配饰所显示的风向指的是风哪边从来,而非哪边吹去(因此,例如“25 mph 西风”意味着风以 25 mph 风速从西边吹来)。

主要影响不会影响游戏玩法事物,比如云的移动速度、暴雪和沙尘暴的背景效果、和面与树的动画。不过,它偶尔也会对游戏玩法有影响,比如它对爆炸泡泡的影响和对遭受强风折磨的玩家的影响。宇宙车钥匙所召唤的UFO坐骑似乎也会稍微被风所推动,但很难察觉到,除非长时间对着某个角落发射会反弹的武器。

风速为 20 mph 或更高时会发生大风天事件,在风速降低到 16 mph 以下时结束。

天气收音机探鱼器个人数字助手、和手机全都能在屏幕右上角列出风速。

功能 [ | ]

代码中有两个控制风速的核心值:windSpeedCurrentwindSpeedTarget,二者均每嘀嗒[1]更新一次。windSpeedCurrent 的变化速率由以下公式确定:

speed = |windSpeedTarget/50 * (1 + 降雨强度 * 5/9) - windSpeedCurrent/50| * 0.0015;

其中 windSpeedTarget 和 windSpeedCurrent 值的单位为游戏所使用的 mph。游戏将两个值都存储为浮点值,当 < 0 时是东风,> 0 时是西风。 世界在创建时,会带有不超过 20 mph 的风,并且会设置变量 windCounter 来防止风速在接下来的 15 - 45 秒内有变化。这段时间结束后,会有一些随机几率会在一定量以内加强或减弱风,每 15 - 45 秒就会这么循环一次(“阵风”)。[2]

几率 目标风速变化
25% -1.25 mph 到 1.25 mph
37.5% -2.5 mph 到 2.5 mph
37.5% -5 mph 到 5 mph

有第二个计数器(extremeWindCounter),它在每一次阵风出现时都会减一。当它到达零时,会引发“极端阵风”。在世界生成过程中和发生极端阵风时都会重置这个计数器。

几率 发生
21.66% 目标风速设置为 0,接下来 2 - 8 分钟内不会出现阵风。
21.66% 目标风速会增加 -10 mph 到 10 mph
36.83% 目标风速会增加 -20 mph 到 20 mph
19.85% 目标风速会增加 -40 mph 到 40 mph

当极端阵风出现时,目标风速将决定经过多少次阵风后会发生下一次极端阵风。

目标风速 出现极端阵风所需的阵风数量
0 - 15 mph 10 - 30 次阵风
> 15 mph 15 - 40 次阵风
> 25 mph 20 - 50 次阵风
> 35 mph 25 - 60 次阵风

最后,如果某次阵风让风向改变,则目标风速有 66% 几率会翻转回到原来的方向。 完成所有这些步骤之后,目标风速会被限制为不超过 40 mph。

影响[ | ]

风会有以下影响:

对象 效果
大风天 当风速在任意方向上为 20 mph 或更高时会发生此事件。
沙尘暴 当风速在任意方向上为 30 mph 或更高时有几率发生。
大风气球怪大风气球怪 影响移动方向和生成位置。生成速度会随着风速提高而提高。
愤怒蒲公英愤怒蒲公英 影响所发射射弹的方向、动画和运动,以及敌怪自身的动画。敌怪只能在风所吹的方向上发射。生成速度会随着风速提高而提高。
瓢虫瓢虫 影响移动方向;只在风在任意方向上超过 20 mph 时才会生成。
[[灵雾|]] 影响移动方向。
释放鸽子释放鸽子 影响移动方向。
风筝风筝 不在墙后面时会推动之。
水 影响动画,当水波质量启用时还会影响扭曲。
八音盒八音盒 影响音符的飘动方向。
呆萌气球机呆萌气球机 影响气球移动。
降水(暴雪沙尘暴、等等) 影响微粒运动。
影响飘动方向。
泡泡机 影响飘动方向。
爆炸泡泡爆炸泡泡 影响飘动方向。
愤怒翻滚怪愤怒翻滚怪 推动。
派对对背景气 影响气球飘动方向。
[[强风|]]减益的玩家 推动。
北极极的雪 影响飘动方向。
纸飞机 带走。
耍蛇者长笛耍蛇者长笛 影响使用长笛所产生的音符。
环境实体 影响背景中断线风筝、蝴蝶群、天马、妖精群、秃鹰、鸟群、海鸥群、腹足怪群、气球史莱姆群、地狱蝙蝠群、蝙蝠群、飞龙、热气球和飞艇的移动。
烟囱烟囱 推动其所冒出的烟雾微粒。
萤火虫萤火虫 / 荧光虫荧光虫 当风在任意方向上超过 20 mph 时不会生成。
蝴蝶蝴蝶 当风在任意方向上超过 20 mph 时不会自然生成或通过摇树生成。
水黾水黾 当风在任意方向上超过 10 mph 时不会自然生成。
女巫扫帚女巫扫帚 会推动把手顶部的小灯。
树叶块和生命树树叶 随着风速增加叶子也会更频繁地掉落。掉落的叶子也会受风所影响。
树reetop 长着树叶的树梢会有动画。
蔓藤蔓藤 推动。
灯笼夜笼夜时的背景灯 影响飘动方向。
释放灯笼释放灯笼 影响飘动方向。
风的氛围曲子 影响音量。仅当风速大于 20 mph 时才会播放。
瀑布 影响动画。
风车风车 影响旋转动画。
三角旗三角旗 影响动画速度。
风向标风向标 影响动画。

家具[ | ]

一些家具,当其处于地表上,位于以下任意墙前面、或者其后面根本没有墙时,会受风影响。

满足以上条件时,以下家具会受风影响。

强风 [ | ]

  • 强风默认情况下每秒会推动玩家 mph * 0.0012 像素。如果风速 > 25mph,此数值还会增加 37%。如果玩家正在坠落或跳跃,此数值会提高 50%。最后,如果玩家向左或向右移动,此数值会降低 20%,并且最后会被限制为不超过 0.072 像素/帧。
  • 以足够的速度迎风奔跑会让玩家出现类似于穿着赫尔墨斯靴奔跑时的那种效果的微粒。
  • 骑着坐骑在固定高度上向左或向右移动时会抵消强风的影响。

备注[ | ]

  • 当正好为 0 mph 时,游戏会将其视为西风,但由于风速使用的是小数系统,此值通常只是接近但不会正好是 0。
  • 在标题屏幕上,会初始化出一个最高 40 mph 的风速。但这并不会带入生成的世界中,世界内会以最高 20 mph 的风速开始。
    • 由于这些初始速度,世界有 1/400 几率生成时就处于大风天状态。
  • 旅行模式中,如果玩家控制风速,那么在灯笼夜期间风速会降到零。
  • 只有目标风速会随同世界存盘,加载这个世界时,当前风速会被设置为目标风速。这会使得玩家退出又重新进入世界后风速上会有轻微不同。

花絮[ | ]

在较低的风速时,每嘀嗒内叶子从树上掉落的频率较低(5 mph → 1/2000 几率、10 mph → 1/1000、15 mph → 1/450、……40 mph → 1/50)。虽然最大风速是 40mph,但却有针对 55 mph 及更高风速情况的代码,几率为每嘀嗒 1/10。

废弃的射弹物理[ | ]

在游戏代码中,有一个布尔值 Main.windPhysics 可以开关一个特性:射弹会受风影响。因为它处于禁用状态,因此目前游戏中并没有这样的特性。以下是关于此特性效果的详细描述。

值得注意的是,此特性会试图在北极上禁用风的效果,但不清楚这是为了防止和现有代码冲突还是为了彻底移除此特性。

当此特性被激活时,以下所有射弹,当其位于地表上且未卡债图格中或在墙后时,都会受风影响。这仅当它们沿当前风向移动且其 x 速度低于 wind mph * 0.36 时才会发生。这会让它们的 x 速度每嘀嗒改变 wind mph * 0.002 像素,或者说每秒 wind mph * 0.12 像素。

在这种情况下,射弹的 x 速度不能超过 16,但实际上永远不会达到此限制,因为可能的最大风速,40 mph,只能将射弹吹到每嘀嗒 14.4 像素。

  • 功能 [ | ]

    游戏在决定风速时会用到两个基准值:“windSpeed”和“windSpeedSet”。windSpeedSet 这个值用来决定 windSpeed 应当逐渐变化成为的值,但在整个代码中实际上交错地使用两个值来影响某些对象。游戏采取以下步骤来决定确定风速:

    • 如果 windSpeed 不等于 windSpeedSet,让其接近 0.001
    • 改变 windSpeedSpeed,变化幅度为 -.001 到 .001 (夜晚时是 -.002 到 .002)
    • 将 windSpeedSpeed 限制到 -.002 到 .002 内
    • 改变 windSpeedTemp,幅度为 windSpeedSpeed (如果下则为 windSpeedSpeed * 2)
    • 将 windSpeedTemp 限制到 0.3 + 0.5 * (云覆盖率百分比 / 100)
    • 将 windSpeedSet 的值设为 windSpeedTemp
    • 循环

    总的来说,这意味着夜间及下雨时风速会更强。然而,由于沙尘暴并不算做下雨,所以沙尘暴实际上并不会导致风速增加。同样值得注意的是,天空中更多的云意味着更高的风速,无论是否下雨。

    参考[ | ]

    1. A tick is a time unit countable by the software. Most of Terraria's updating logic happens every tick. A tick has the length of 1/60th of a second, hence there are 60 ticks in a second and 3600 ticks in a minute.
    2. Information taken from the Desktop version Desktop 1.4.0.5 source code, method UpdateWeather() in Terraria.Main.cs. There may be inaccuracies, as the current Desktop version Desktop version is 1.4.4.9.
    本Wiki翻译以官方Wiki中文语言包为准

    zh:风

    Advertisement