Ćwiczenie z parametrami - przyciski

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

Przyciski mogą być używane przez graczy do odblokowywania nowych obszarów, przyznawania punktów i ujawniania skarbów. Kiedy gracz dotknie przycisku, powinien otrzymać jakąś informację zwrotną, aby wiedzieć, że jest on używany, na przykład zmieniając kolory lub wydając dźwięki.

W tym przykładzie przycisk będzie używany do aktywacji mostu. Gdy przycisk zostanie naciśnięty, zmieni kolor na zielony, a gracze będą mogli korzystać z mostu. Jeśli gracz nie naciśnie przycisku, spadnie przez most, gdy spróbuje po nim przejść.

Stwórz most

Zacznij od ustawienia mostu.

  1. Stwórz obszar w swoim środowisku, w którym gracze będą potrzebować mostu.

  2. Stwórz część dla mostu i zmień jej nazwę na Most.

  3. Wybierz most, w oknie Właściwości:

    • Zmień Przezroczystość na .5. Dla Przezroczystości, 0 jest widoczne, 1 jest niewidoczne.
    • Zaznacz Zablokuj.
    • Odznacz Może kolidować.
  4. Kiedy przetestujesz grę, most powinien wyglądać na mglisty, a ludzie nie powinni jeszcze móc po nim chodzić.

Stwórz przycisk

Teraz, gdy most jest ustawiony, stwórz przycisk.

  1. Stwórz nową część nazwaną Przycisk.

  2. Zmień kolor przycisku na czerwony.

  3. Zablokuj przycisk.

  4. Przesuń przycisk tak, aby lekko unosił się i nie dotykał niczego. To zapewni, że zdarzenie Dotknięcie nie uruchomi się przypadkowo.

Uczyń przycisk interaktywnym

Tym razem, zamiast używać zdarzenia Dotknięcie do stworzenia pułapki, użyjesz go do stworzenia przycisku, który sprawia, że most jest użyteczny. Aby most mógł kolidować, użyj kodu bridge.CanCollide = true w niestandardowej funkcji, która uruchamia się, gdy gracz dotknie przycisku. Wiesz wszystko, co potrzebujesz, aby ukończyć poniższe kroki.

Spróbuj to rozwiązać samodzielnie, zanim spojrzysz na rozwiązanie kodu.

  1. Wstaw nowy skrypt do przycisku o nazwie AktywujMost.
  2. Usuń Hello World.
  3. Stwórz zmienne dla mostu i dla przycisku.
  4. Stwórz lokalną funkcję, która wykonuje następujące czynności, gdy przycisk jest dotknięty:
    • Wydrukuj "przycisk dotknięty".
    • Zmień kolor przycisku z czerwonego na zielony, gdy jest dotknięty.
    • Zmień przezroczystość mostu na 0, aby stał się widoczny.
    • Uczyń most użytecznym, używając kodu bridge.CanCollide = true.
  5. Połącz funkcję z zdarzeniem Dotknięcie przycisku.
  6. Przetestuj skrypt i upewnij się, że most pojawia się, gdy przycisk jest dotknięty.

Rozwiązanie kodu Poniżej znajduje się jedno z możliwych rozwiązań kodu

-- Wstaw ten skrypt do przycisku
-- Zmienia kolor przycisku na zielony, gdy coś dotknie przycisku.
local button = script.Parent
local bridge = workspace.Bridge
local function buttonPressed()
print("przycisk dotknięty")
button.Color = Color3.fromRGB(0, 170, 0)
bridge.Transparency = 0
bridge.CanCollide = true
end
button.Touched:Connect(buttonPressed)

Rozwiązywanie problemów z kodem

Problem: Most jest już solidny, gdy gra się zaczyna. Upewnij się, że części są zablokowane i nie dotykają niczego. Części mogą dotykać czegoś, jak teren lub inna część, co może spowodować przypadkowe uruchomienie funkcji buttonPressed().

Problem: Otrzymujesz błąd w oknie Wyjścia mówiący: "Most nie jest ważnym członkiem Workspace" Sprawdź następujące:

  • Nazwę swojego mostu. Most w twoim skrypcie musi być nazwany dokładnie tak, jak w Eksploratorze.
  • Że part.Touched:Connect(buttonPressed) jest poza funkcją buttonPressed().

Opcjonalne wyzwanie kodowe

Skrypt w tej lekcji może być również użyty do utrzymania drzwi, które trzymają graczy z dala od określonych obszarów. Ćwicz swoje umiejętności kodowania i zrób następujące:

  • Stwórz część drzwi.
  • Stwórz przycisk dalej od drzwi.
  • Zmień skrypt w tej lekcji, aby sprawił, że drzwi zmienią przezroczystość i aby gracz nie mógł z nimi kolidować.

Twoja wersja może wyglądać mniej więcej tak:

local button = script.Parent
-- Przypomnienie: Zmień nazwę części, Brama, na tę w twoim projekcie
local gate = workspace.Gate
local function buttonPressed()
print("przycisk dotknięty")
-- Zmienia przycisk na czerwony, aby dać graczowi informację zwrotną
button.BrickColor = BrickColor.Red() -- ZMIENIĆ TO
-- Sprawia, że brama jest niewidoczna
gate.Transparency = 1
-- Umożliwia graczowi przejście przez bramę
gate.CanCollide = false
end
button.Touched:Connect(buttonPressed)
©2026 Roblox Corporation. Nazwa Roblox, logo Roblox oraz hasło „Powering Imagination” należą do naszych zarejestrowanych i niezarejestrowanych znaków towarowych na terenie Stanów Zjednoczonych oraz w innych krajach.