Menu
CoddyTech

移动平台

本课属于 Coddy Lua 学习旅程的“Roblox 游戏脚本编写”单元。第 22 课,共 25 课。

TweenInfo.new 不只接受时间。它的参数按顺序为:

  1. 时间,单位为秒
  2. 缓动样式,例如 Enum.EasingStyle.Sine:速度在过程中如何变化
  3. 缓动方向:In、Out 或 InOut
  4. 重复次数:额外播放多少次,-1 表示无限重复
  5. 是否反转:true 表示每次运行后反向播放
  6. 延迟:开始前等待的秒数
local info = TweenInfo.new(1, Enum.EasingStyle.Quad, Enum.EasingDirection.Out, 2, false)

这个动画会播放 3 次(播放 1 次,再重复 2 次),每次运行耗时 1 秒,并在每次运行之间跳回起点。

Sine 配合 InOut 时,动画开始较慢,中间加速,结束时减速,这是平台移动时自然的效果。Linear 则会始终保持相同的速度。

通过补间动画移动的平台不会带着玩家横向移动:玩家必须跟着它走。

challenge icon

挑战

中等

让蓝色平台在 Z 10 和 Z -10 之间来回移动,永不停歇。

  1. 只修改 TweenInfo.new 这一行。保留 3 秒以及 Sine InOut。
  2. 将重复次数设为 -1(永远),并将反向设为 true,这样它就会返回。

按“开始”:平台会不停地来回移动。然后按“检查”。

亲手试试

local TweenService = game:GetService("TweenService")
local platform = script.Parent

-- TweenInfo.new(time, style, direction, repeatCount, reverses)
local info = TweenInfo.new(3, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut)
local goal = { Position = Vector3.new(0, 10, -10) }

local tween = TweenService:Create(platform, info, goal)
tween:Play()

Roblox 游戏脚本编写中的所有课

自己练习: Lua 在线编译器