挥剑
Coddy Roblox 游戏:竞技场对战 课程的第 2 课,共 25 课。
手持工具时,单击(或轻触)会触发工具的 Activated 事件,服务器端也会触发。挥砍时会播放 Roblox 自带的剑刃挥砍动画:Animation 用它的 ID 标识动画,角色的 Animator 位于其 Humanoid 中,会将动画加载到轨道中播放:
local slash = Instance.new("Animation")
slash.AnimationId = "rbxassetid://522635514"
character.Humanoid.Animator:LoadAnimation(slash):Play()如果不设限制,玩家就可以随意快速地单击,因此系统会在一个表中按玩家记录上次挥砍的时间,并拒绝在 Settings.SwingCooldown 秒内再次挥砍。
挑战
简单点击鼠标挥剑。
- 在靠近顶部的位置:
local lastSwing = {},以及slashAnimation,id 为rbxassetid://522635514。 - 编写
swing(player):如果角色已死亡,或上次挥剑距现在不到Settings.SwingCooldown,就返回。 - 否则,设置
lastSwing[player] = now,并在character.Humanoid.Animator上播放斩击动画。 - 将剑的
Activated连接到swing(player)。
按“开始”,握住剑并点击鼠标:你的角色就会挥剑。然后点击“检查”。
亲手试试
local Players = game:GetService("Players")
local ServerStorage = game:GetService("ServerStorage")
local Settings = require(game.ReplicatedStorage.Settings)
print("Swords deal " .. Settings.SwordDamage .. " damage")
-- 第 2 课:在这里编写挥剑代码
-- 每位玩家每次重生都会获得一把剑
Players.PlayerAdded:Connect(function(player)
player.CharacterAdded:Connect(function()
local sword = ServerStorage.Sword:Clone()
sword.Parent = player.Backpack
end)
end)
Roblox 游戏:竞技场对战中的所有课
自己练习: Roblox 在线编辑器