Değişkenler Pratiği - Butonlar

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

Butonlar oyuncular tarafından kullanılarak yeni alanlar açılabilir, puan verilebilir ve hazine gösterilebilir. Bir oyuncu bir butona dokunduğunda, oyuncuların etkileşimde bulunduğunu göstermek için bazı geri bildirimler vermelidir, örneğin renkleri değiştirmek veya sesleri göstermek gibi.

Bu örnekte, düğme bir köprüyü etkinleştirmek için kullanılacaktır. Düğmeye basıldığında, yeşil olacaktır ve oyuncular köprüyü kullanabilir. Oyuncu düğmeye basmadıysa, oyuncu üzerinde yürümeye çalıştığında köprüden düşecektir.

Bir Köprü Oluştur

Köprüyü kurarak başlayın.

  1. Oyununuzda oyuncuların bir köprüye ihtiyacı olacağı bir alan oluşturun.

  2. Köprü için bir parça oluşturun ve köprüyü Bridge olarak yeniden adlandırın.

  3. Özellikler penceresinde köprüyü seçin:

    • Görünürlüğü .5'e değiştirin. Görünürlük için, 0 görünür, 1 görünmez.
    • Kontrol Bağlantıyı İncele .
    • Çarpıştırılabilir seçeneğini seçmeyi İptal Et .
  4. oyuntest edin, köprü hâlâ puslu görünmelidir ve insanlar henüz yürüyememelidir.

Butonu Oluştur

Şimdi köprü kurulduğunda, düğmeyi oluşturun.

  1. Buton adında yeni bir parça oluştur.
  2. Buton rengini kırmızıya değiştirin.
  3. Butonu bağla butonunu.
  4. Butonu biraz yükseltin ve hiçbir şeye dokunmadan etrafta dolaştırın. Bu, Touched etkinliğinin yanlışlıkla yanmasını önlemek içindir.

Butonu Etkileşimli Hale Getirme

Bu sefer, bir tuzak oluşturmak için Touched etkinliğini kullanmak yerine, kullanıcının köprüyü kullanılabilir hale getiren düğmeyi oluşturmak için kullanacaksınız. Köprüyü kullanılabilir hale getirmek için, öğrenci

Kod çözümünü incelemek için kendiniz çözmeyi deneyin.

  1. Aktif Köprü'nün adına ActivateBridge olan düğüne yeni bir skript ekleyin.
  2. Delete Hello World .
  3. Köprü için ve düğme için değişkenler oluştur.
  4. Düğmeye dokunan son şeyi yapacak yerel bir işlev oluştur :
    • 印記 "button touched" .
    • Butonun dokunulduğunda rengini yeşilden kırmızıya değiştirir.
    • Görünür hale getirmek için köprünün transparansını 0'a ayarlar.
    • Kodu kullanarak köprüyü kullanılabilir hale getirir bridge.CanCollide = true
  5. İşlevi düğmenin Touched etkinliğine bağlayın.
  6. Kodu test edin ve düğmeye dokunulduğunda köprünün görünmesinden emin olun.

Aşağıdaki kod çözümü bir olası kod çözümüdür


-- Bu senaryoyu butona yerleştir
-- Butona bir şey dokununca yeşil döndürür.
local button = script.Parent
local bridge = workspace.Bridge
local function buttonPressed()
print("button touched")
button.Color = Color3.fromRGB(0, 170, 0)
bridge.Transparency = 0
bridge.CanCollide = true
end
button.Touched:Connect(buttonPressed)

Kodunuzu Troubleshoot

Sorun: Köprü oyun başladığında zaten katıdır. Parçaların yerleştirilmiş olduğundan emin olun ve hiçbir şeye dokunmayın. Parçalar bir yere dokunabilir, böylece butonPressed() işlevi yanlış yere basılır. Sorun: Çıkış Penceresinde "Bridge is not a valid member of Workspace" diyor takip edilenkontrol edin:

  • Köprünüzün adlandırılması. Kodunuzdaki köprü aynen Explorer'da olduğu gibi adlandırılmalıdır.
  • Bu part.Touched:Connect(buttonPressed) dışında buttonPressed() işlevinin dışında.

Opcional Kod Mücadelesi

Bu dersin içindeki kod, oyuncuları belirli alanlardan uzak tutan kapıları da tutmak içindir. Kodlama becerilerinizi pratik edin ve takip edilenyapın:

  • Bir kapı parçası oluşturun.
  • Butonu kapıdan daha uzakta oluşturun.
  • Bu dersindeki kodu değiştirin, böylece kapının görünürlüğünü değiştirebilir ve oyuncu ile çarpışmaz.

Versiyonunuz bunun gibi görünebilir:


local button = script.Parent
-- Hatırlatıcı: Parçanın, Kapı'nın, projendeki ismini projende bulunan ile değiştir
local gate = workspace.Gate
local function buttonPressed()
print("button touched")
-- Oyuncuya geri geri dönüşvermek için düğmeyi kırmızıya değiştir
button.BrickColor = BrickColor.Red() -- BUYU DEĞİŞTİR
-- Geçiti görünmez hale getir
gate.Transparency = 1
-- Oyuncunun kapıdan geçebileceğini sağlar
gate.CanCollide = false
end
button.Touched:Connect(buttonPressed)