我想知道是否有什么事情是我必须做的,以便在游戏中途更改GUI的文本。因为我的问题是,我正在制作一个计时器,它经历了“进行中的回合”,“游戏结束”,“中场休息”,“进行中的投票”,然后永远重复。但文本本身却卡在了Round上。在整个计时器中,标签属性中的文本值会更改,但屏幕GUI上的文本不会更改
我每次都用同样的方法修改文本:
status.Text = "Game over"然后我会让计时器在我再次改变它之前运行大约5秒:
status.Text = "Intermission"以此类推。
下面是完整的代码:
local rep = game:GetService("ReplicatedStorage")
local players = game:GetService("Players")
local minutesvalue = rep:WaitForChild("Minutes")
local secondsvalue = rep:WaitForChild("Seconds")
local minutes = 0 --minutes
local seconds = 11 --seconds
local status = game.StarterGui.Status:WaitForChild("Status")
while true do
status.Text = "Round In Progress"
minutesvalue.Value = minutes
secondsvalue.Value = seconds
repeat
if secondsvalue.Value <= 0 then
minutesvalue.Value = minutesvalue.Value - 1
secondsvalue.Value = 59
else
secondsvalue.Value = secondsvalue.Value - 1
end
wait(1)
until secondsvalue.Value <= 0 and minutesvalue.Value <= 0
status.Text = "Game Over!"
wait(5)
status.Text = "Intermission"
secondsvalue.Value = 15
repeat
secondsvalue.Value = secondsvalue.Value - 1
wait(1)
until secondsvalue.Value <= 0 and minutesvalue.Value <= 0
status.Text = "Voting In Progress"
secondsvalue.Value = 10
repeat
secondsvalue.Value = secondsvalue.Value - 1
wait(1)
until secondsvalue.Value <= 0 and minutesvalue.Value <= 0
status.Text = "Loading Map..."
end计时器和状态是单独的GUI。我分离了它,希望它能工作,但它没有。
发布于 2020-05-05 19:20:11
这是因为你是在StarterGui中做的,我敢肯定,在players PlayerGui中做,所以替换:
local status = game.StarterGui.Status:WaitForChild("Status")
通过以下方式:
local status = players[plr].PlayerGui:WaitForChild("Status")
(定义plr)
https://stackoverflow.com/questions/61607303
复制相似问题