Ć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 odsłaniania skarbów. Kiedy gracz dotknie przycisku, powinno to dać jakieś informacje zwrotne, aby gracze wiedzieli, że jest on aktywowany, na przykład zmieniając kolory lub wydając dźwięki.

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

Zbuduj most

Na początku ustaw most.

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

  2. Utwó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 Zakotwiczony.
    • Odznacz Można kolidować.
  4. Gdy przetestujesz doświadczenie, most powinien wyglądać na mglisty i ludzie nie powinni móc po nim przechodzić.

Utwórz przycisk

Teraz, gdy most jest już ustawiony, utwórz przycisk.

  1. Utwórz nową część o nazwie Przycisk.

  2. Zmień kolor przycisku na czerwony.

  3. Zakotwicz przycisk.

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

Uczyń przycisk interaktywnym

Tym razem, zamiast używać zdarzenia Class.BasePart.Dotknięcie|Dotknięcie do stworzenia pułapki, wykorzystasz je do stworzenia przycisku, który uczyni most używalnym. Aby most mógł kolidować, użyj kodu bridge.CanCollide = true w ramach niestandardowej funkcji, która zostanie uruchomiona, gdy gracz dotknie przycisku. Wiesz wszystko, co potrzebujesz, aby ukończyć następujące kroki.

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

  1. Wstaw nowy skrypt do przycisku o nazwie AktywujMost.
  2. Usuń Hello World.
  3. Utwórz zmienne dla mostu i dla przycisku.
  4. Utwórz lokalną funkcję, która robi to, co następuje, 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 go uczynić widocznym.
    • Spraw, aby most był używalny, używając kodu bridge.CanCollide = true
  5. Podłącz funkcję do zdarzenia 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 doświadczenie się zaczyna. Upewnij się, że części są zakotwiczone i nie dotykają niczego. Części mogą dotykać czegoś, jak teren lub inna część, co może spowodować przypadkowe wywołanie funkcji buttonPressed().

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

  • Nazwę swojego mostu. Most w twoim skrypcie musi być nazwany dokładnie tak, jak w Eksploratorze.
  • Czy 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 blokują graczy przed dostępem do określonych obszarów. Ćwicz swoje umiejętności kodowania i zrób to:

  • 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ł kolidować z nimi.

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


local button = script.Parent
-- Przypomnienie: Zmień nazwę części, Brama, na tę w swoim projekcie
local gate = workspace.Gate
local function buttonPressed()
print("przycisk dotknięty")
-- Zmienia przycisk na czerwony, aby dać informację zwrotną graczowi
button.BrickColor = BrickColor.Red() -- ZMIEN O TO
-- Sprawia, że brama staje się niewidoczna
gate.Transparency = 1
-- Sprawia, że gracz może przejść 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.