移动平台
本课属于 Coddy Lua 学习旅程的“Roblox 游戏脚本编写”单元。第 22 课,共 25 课。
TweenInfo.new 不只接受时间。它的参数按顺序为:
- 时间,单位为秒
- 缓动样式,例如
Enum.EasingStyle.Sine:速度在过程中如何变化 - 缓动方向:
In、Out或InOut - 重复次数:额外播放多少次,
-1表示无限重复 - 是否反转:
true表示每次运行后反向播放 - 延迟:开始前等待的秒数
local info = TweenInfo.new(1, Enum.EasingStyle.Quad, Enum.EasingDirection.Out, 2, false)这个动画会播放 3 次(播放 1 次,再重复 2 次),每次运行耗时 1 秒,并在每次运行之间跳回起点。
Sine 配合 InOut 时,动画开始较慢,中间加速,结束时减速,这是平台移动时自然的效果。Linear 则会始终保持相同的速度。
通过补间动画移动的平台不会带着玩家横向移动:玩家必须跟着它走。
挑战
中等让蓝色平台在 Z 10 和 Z -10 之间来回移动,永不停歇。
- 只修改
TweenInfo.new这一行。保留3秒以及SineInOut。 - 将重复次数设为
-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 在线编译器