来自Terraria Wiki
跳转至: 导航搜索

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

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

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

电脑版 风速为 20 mph 或更高时会发生大风天事件,在风速降低到 17 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 或更高时有几率发生。
Windy BalloonWindy Balloon电脑版 影响移动方向和生成位置。生成速度会随着风速提高而提高。
愤怒蒲公英愤怒蒲公英电脑版 影响所发射射弹的方向、动画和运动,以及敌怪自身的动画。敌怪只能在风所吹的方向上发射。生成速度会随着风速提高而提高。
瓢虫瓢虫电脑版 影响移动方向;只在风在任意方向上超过 20 mph 时才会生成。
灵雾电脑版 影响移动方向。
Release DovesRelease Doves电脑版 影响移动方向。
风筝风筝电脑版 不在墙后面时会推动之。
水 影响动画,当水波质量启用时还会影响扭曲。
八音盒八音盒电脑版、主机版、前代主机版、和移动版 影响音符的飘动方向。
呆萌气球机呆萌气球机电脑版主机版 影响气球移动。
降水(暴雪沙尘暴、等等) 影响微粒运动。
影响飘动方向。
泡泡机泡泡 影响飘动方向。
爆炸泡泡爆炸泡泡 影响飘动方向。
愤怒翻滚怪愤怒翻滚怪电脑版主机版 推动。
派对派对背景气球电脑版主机版 影响气球飘动方向。
强风电脑版主机版减益的玩家 推动。
北极北极的雪花 影响飘动方向。
纸飞机纸飞机电脑版 带走。
Snake Charmer's FluteSnake Charmer's Flute电脑版 影响使用长笛所产生的音符。
背景氛围 影响背景中断线风筝、蝴蝶群、天马、妖精群、秃鹰、鸟群、海鸥群、腹足怪群、气球史莱姆群、地狱蝙蝠群、蝙蝠群、飞龙、热气球和飞艇的移动。
烟囱烟囱电脑版、主机版、和移动版 电脑版 推动其所冒出的烟雾微粒。
萤火虫萤火虫 / 荧光虫荧光虫 当风在任意方向上超过 20 mph 时不会生成。
蝴蝶蝴蝶 当风在任意方向上超过 20 mph 时不会自然生成或通过摇树生成。
Witch's BroomWitch's Broom电脑版 会推动把手顶部的小灯。
树叶块树和生命树树叶块 随着风速增加叶子也会更频繁地掉落。掉落的叶子也会受风所影响。
树Treetops 长着树叶的树梢会有动画。
蔓藤蔓藤 推动。
Lantern NightLantern Night时的背景灯笼电脑版 影响飘动方向。
Release LanternRelease Lantern电脑版 影响飘动方向。
风的氛围曲子 影响音量。仅当风速大于 20 mph 时才会播放。
瀑布 影响动画。
风车风车电脑版 影响旋转动画。
三角旗三角旗电脑版 影响动画速度。
Weather VaneWeather Vane电脑版 影响动画。

家具[编辑 | 编辑源代码]

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

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

强风 电脑版[编辑 | 编辑源代码]

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

备注[编辑 | 编辑源代码]

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

花絮[编辑 | 编辑源代码]

在较低的风速时,每嘀嗒内叶子从树上掉落的频率较低(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. 嘀嗒是可由软件计数的时间单位。泰拉瑞亚的大多数更新逻辑都会每嘀嗒发生一次。一个嘀嗒的长度为 1/60 秒,因此一秒钟内有 60 嘀嗒,一分钟内有 3600 嘀嗒。
    2. 信息来自电脑版 电脑版 1.4.0.5 源代码,Terraria.Main.cs 中的 UpdateWeather() 函数