Я создаю главное меню в Lua (Roblox Studio), и кнопка «Начать игру/играть» не работает.
я попробовал этот код для кнопки воспроизведения, но кнопка не реагировала
local button = script.Parent
local main_menu = script.Parent.Parent.Parent.Parent
local main_menu_frame = script.Parent.Parent.Parent
main_menu.Enabled = true
game.Lighting.Blur.Enabled = true
while true do
if button.MouseButton1Click == true then
game.Lighting.Blur.Enabled = false
main_menu.Enabled = false
main_menu_frame.Active = false
main_menu_frame.Transparency = 1
main_menu_frame.Visible = false
end
task.wait(0.1)
end
Обновлено: я перепутал логическое значение с событием, моя вина! Подключите функцию к событию, а затем запустите свой код.
Измените свой код на:
local button = script.Parent
local main_menu = script.Parent.Parent.Parent.Parent
local main_menu_frame = script.Parent.Parent.Parent
main_menu.Enabled = true
game.Lighting.Blur.Enabled = true
button.MouseButton1Click:Connect(function()
game.Lighting.Blur.Enabled = false
main_menu.Enabled = false
main_menu_frame.Active = false
main_menu_frame.Transparency = 1
main_menu_frame.Visible = false
task.wait(0.1)
end)
Код, который вы написали, зациклился в ожидании завершения события button.MouseButton1Click
. Это вызвало бесконечный цикл срабатывания кнопки и последующее ожидание завершения цикла.
Вам не нужен цикл для проверки события. Вместо этого просто проверьте, срабатывает ли событие кнопки MouseButton1Down
, а затем запустите свой код, поскольку функция task.wait()
действует как устранение дребезга без цикла.
@AndrewYim Я допустил ошибку и исправил свой ответ, пожалуйста, проголосуйте за него, если он правильный.
тысм, я только новичок, и мне это очень нужно
@CarlosAranas также, пожалуйста, проголосуйте за мой ответ, если он вам нравится.
MouseButton1Click
— это не логическое значение, это Событие. Это означает, что вместо постоянной проверки истинности button.MouseButton1Click
вам следует просто определить функцию с той же функциональностью и привязать ее к рассматриваемому событию с помощью метода Connect()
.
Кроме того, MouseButton1Click
, вероятно, здесь неправильный выбор. Активированный будет выполнять аналогичную функцию, но с большей кросс-совместимостью.
Этот LocalScript должен помочь:
local button = script.Parent
local main_menu = script.Parent.Parent.Parent.Parent
local main_menu_frame = script.Parent.Parent.Parent
main_menu.Enabled = true
-- This function defines what should happen when the button gets clicked
local function onClick()
game.Lighting.Blur.Enabled = false
main_menu.Enabled = false
main_menu_frame.Active = false
main_menu_frame.Transparency = 1
main_menu_frame.Visible = false
end
-- And this line ensure the function is called every time the button is activated
button.Activated:Connect(onClick)
Комментарий @histrueandfalse применим и здесь — все, что после main_menu.Enabled = false
, лишнее. Но для данного поста это не особо важно.
Чтобы сделать комментарий Эндрю более кратким, вы можете установить для видимости значение false, а затем установить для размытия значение false. Атрибут видимости всех элементов пользовательского интерфейса устанавливает для себя и всех его потомков значение false.
этот код не сработал, возможно, это потому, что я не использовал локальный скрипт
@CarlosAranas да, тебе нужен локальный скрипт
Также помните, что части моего ответа не нужны. Например, вы можете просто сказать main_menu.visible=false, а не весь остальной код. Атрибуты .visible также устанавливают видимость всех его потомков.