Tuzak Yapımı - Geçici Köprü Oluşturulması

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

Bu proje, pratik bir şekilde döngüler için kullanımın bir başka örneğidir. Bu köprü için, oyuncular bir köprüyü sınırlı bir süre için gezilebilir hale getirmek için bir düğmeye dokunacaklar. Bir timer oluşturmak ve oyuncuya kalan süreyi göstermek için kullanımın döngülerini kullanacaksınız.

Projeyi ayarlama

Bu köprü, bir obby gibi hareket tabanlı zorluklarla herhangi bir oyun projesine dahil edilebilir.

Parçalar Oluşturuluyor

  1. Bir köprü oluşturmak için bir yer bulun, bir nehir veya bir obby'nin büyük bir boşluğu gibi. Aşağıdaki gibi üç bağlantılı parçayı oluşturun.

    • Zamanlayıcı Görüntüsü
    • Köprü
    • Buton Köprüsü
  2. aktif değildeğilken, köprü yarı透明 olacaktır. Bunu yapmak için Köprüyü Seç ve özelliklerini değiştir.

    • Şeffaflık = 0.8
    • Çarpışabilir mi? = Hayır

Zamanlayıcı Ekranı Oluşturulması

Köprüyü geçerken, oyuncular köprünün kaybolmadan önce kaç saniye olduğunu görmek zorunda kalacak. Bir yüz güisi gibi bir nesneyi bir parçaya ekleyerek görüntüleri veya metni gösteren bir yol. Yüz güileri ayrıca oyun içi işaretler, özel sağl

  1. Select TimerDisplay ve bir Yüze Gui ekle. Sonra, Yüze Gui'nin altına, bir TextLabel ekle.

  2. Yüzey GUI'sini seçin. Özellikler'de aşağıdaki değişiklikleri yapın:

    • Oyuncunun bakış yönünde oyunun etiketlerini görebilmeniz için Yüzünü değiştirin.
  3. TextLabel'ı seçin. Özellikler'de aşağıdaki değişiklikleri yapın:

    • Boyutu 1, 0,1, 0 olarak ayarla.
    • Set TextScaled ınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınınını
    • Boş bırakılacak Metin ayarlanır. Metin, kod kullanılarak güncellenecek.

Script'i ayarlama

Artık saat dünya, köprüyü kontrol etmek ve oyunculara sayıyı göstermek için bir senaryo oluşturun.

  1. Köprü bölümünde, TimedBridge adında yeni bir senaryo ekleyin. Bu senaryoda, aşağıdaki değişkenleri oluşturun.


    local bridge = script.Parent
    local button = workspace.ButtonBridge
    local timerText = workspace.TimerDisplay.SurfaceGui.TextLabel
    -- Köprünün ne kadar dayanıklı olacağı
    local timerDuration = 5

Dokunum Etkileşimini Kodlama

Köprüyü kullanmak için iki işlev oluşturmanız gerekir. Bir işlev, köprüyü yürüyecek ve zamanlayıcıyı gösterecektir. Diğer işlev, bir oyuncunun köprüyü etkinleştiren düğmeye dokunması durumunda dinleyecektir.

  1. startTimer() içinde bir print ifadesi olan yeni bir işlev oluşturun. kodtest etmek için print ifadesini kullanacaksınız.


    local timerDuration = 5
    local function startTimer()
    print("Countdown started")
    end
  2. Bir insanoid'in butona dokunup dokunmadığını kontrol etmek için buttonPressed() kodunu yazın. Fonksiyon bir partTouched parametresi kabul etmelidir ve sonra bir insanoid'in bu bölümde tespit edildiğinde boş bir ifadeyi içerecek şekilde yazılmalıdır.


    local function startTimer()
    print("Countdown started")
    end
    local function buttonPressed(partTouched)
    local character = partTouched.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    if humanoid then
    end
    end
  3. Zamanlayıcıyı başlatmak için, if ifadesinde, startTimer() işlevini çağırın.


    local function buttonPressed(otherPart)
    local character = otherPart.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    if humanoid then
    startTimer()
    end
    end
  4. buttonPressed() ın sonunda, düğmenin buttonPressed() etkinliğine 8> buttonPressed() fonksiyonunu bağlayın.


    local function buttonPressed(otherPart)
    local character = otherPart.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    if humanoid then
    startTimer()
    end
    end
    button.Touched:Connect(buttonPressed)
  5. Projeyi çalıştırın. Parçaya dokunun ve Çıktı penceresindeki kontrol kutusuna giderek yazılımı görün.

Hata ayıklama ipuçları

Bu noktada, köprü istediğiniz gibi çalışmazsa, aşağıdaki birini deneyin.

Mesajı sorunlu bir iletişim mesajı yazıyor: " #... değil bir geçerli üye değil".

  • TimedBridge kısmında, tüm parçaların Explorer'da göründüğü gibi yazıldığından emin olun. Sorun : Parçaları göremiyorum.

  • Tüm üç parçanın yerleştirildiğinden emin olun.

  • Köprü için Görünürlük özelliğini kontrol edin.

Zamanlayıcıyı Oluşturma

Oyuncular köprüye adım atığında, startTimer() köprüyü yürüyebilir hale getirir ve timer'ı başlatır. Timer 0'a ulaştığında, köprü yürüyemeyecek kadar yavaş hale gelir, böylece yeterince hızlı olmayan herkes düşmeye başlar.

Köprüyü Yürüyebilir Hale Getirme

Başlamak için, kodun köprüyü güçlendirmesi veya çarpıştırılabilir hale getirmesi gerekir, ardından yürüyemeye kadar bir zamanlayıcıyı başlatmalıdır.

  1. Köprüyü yürüyebilir hale getirmek için, startTimer() , köprünün Opaklık özelliğini 0 (opak) ve CanCollide özelliğini doğru olarak değiştirin.


    local function startTimer()
    -- Köprüyü görünür ve yürüyebilir hale getirin
    bridge.Transparency = 0
    bridge.CanCollide = true
    end
  2. Geri sayım için bir zamanlayıcı oluşturmak için aşağıdaki değerlerle bir for oluşturun.

    • Değişken Kontrol Etme : isimlendirilmiş count , timerDuration ile ayarlanmıştır.
    • Sona Ulaştık : 0
    • Artışı : -1

    local function startTimer()
    -- Köprüyü görünür ve yürüyebilir hale getirin
    bridge.Transparency = 0
    bridge.CanCollide = true
    for count = timerDuration, 0, -1 do
    end
    end
  3. Oyunculara timer'ı göstermek için, text'i timerText değiştirerek sayıyı gösterin, bir iticiyi tamamladığında sayıyı gösterin. Her tekrar işlemi tamamladığında, oyunculara sayıyı gösterir.


    for count = timerDuration, 0, -1 do
    timerText.Text = count
    end
  4. Task.wait işlevini kullanarak sadece bir saniye için for döngüsü çalıştırılır.


    for count = timerDuration, 0, -1 do
    timerText.Text = count
    task.wait(1)
    end
  5. oyunbaşlatın. Düğmeye dokunduğunuzda köprü görünmeli ve timer başlayacak, sonra tamamlayın.

Köprüyü Yeniden Başlatırken Tutmak

Fakat düğme etrafında hareket ederseniz, sayacı sürekli yeniden başlatacaktır.

Bunun nedeni, düğmeye dokunduğunuzda her seferinde for döngüsü çağrılmasını sağlayan for döngüsü olarak adlandırılıyor olmasıdır. Timer'ı sürekli yeniden başlatmak için bir boBoolean, bir değişken türü eklemelisiniz, böylece timer'ın tekrar çağrılmasına izin verilip etmeyeceğini kontrol edebilirsiniz. Booleans aynı şekilde diğer değişkenler yazılır, ancak sayılar veya senetler kullanarak yerine, sadece doğru veya yanlış olarak ayarlanabilir. Bu durumda, kullanıcının başlatılmadan önce timer'ın çalıştığından emin olmak için bir booleans kullanacaktır.

  1. Yazınızın üstünde, değişkenlerinizin altında, bir değişken oluşturun ve değerini timerActive olarak ayarlayın, çünkü henüz kimse düğmeye basmadı.


    local timerDuration = 5
    local timerActive = false
    local function startTimer()
  2. Eğer timerActive boBooleanının yanlış olduğundan emin olmak için, ifadeyi buttonPressed() ile bir ikinci koşul ekleyin.


    local function buttonPressed(otherPart)
    local character = otherPart.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    if humanoid and timerActive == false then
    startTimer()
    end
    end
  3. Zamanlayıcının zamanlanmasından önce tekrar çalışmasını önlemek için, startTimer() ın doğrulanmasını timerActive ile açık bırakın.


    local function startTimer()
    timerActive = true
    bridge.Transparency = 0
    bridge.CanCollide = true
  4. In the startTimer() function, sonra for loop, set the bridge back to its original properties by changing the bridge's transparency to 0.8 and CanCollide to false.


    local function startTimer()
    timerActive = true
    bridge.Transparency = 0
    bridge.CanCollide = true
    -- TimerDuration'dan sayılan döngü
    for count = timerDuration, 0, -1 do
    timerText.Text = count
    task.wait(1)
    end
    -- Köprüyü yürüyebilir hale getirme
    bridge.Transparency = 0.8
    bridge.CanCollide = false
    end
  5. Köprüyü sıfırlamak için son bir şey, köprünün orijinal hali gibi boş bir yazı olarak değiştirilmesidir. Sonra, timerText boşluk değerini değiştirin.


    bridge.Transparency = 0.8
    bridge.CanCollide = false
    timerText.Text = ""
    timerActive = false
  6. Köprüyü birden fazla kullanılabilir olduğundan emin olmak için oyun testi yapın ve kontrol edin.

Zamanlı Köprü Kısmını Tamamla


local bridge = script.Parent
-- Butonu Explorer'da yazıldığı gibi alır
local button = workspace.ButtonBridge
-- Görüntü için parçayı alır
local timerPart = workspace.TimerDisplay
-- Sayacı gösterecek olan metni alır
local timerText = timerPart.SurfaceGui.TextLabel
-- Oyuncular köprüyü geçmek için ne kadar beklemelidir
local timerDuration = 5
local timerActive = false
local function startTimer()
print("Countdown started")
timerActive = true
bridge.Transparency = 0
bridge.CanCollide = true
-- TimerDuration'dan sayılan döngü
for count = timerDuration, 0, -1 do
timerText.Text = count
task.wait(1)
end
-- Köprüyü yürüyebilir hale getirme
bridge.Transparency = 0.8
bridge.CanCollide = false
timerText.Text = ""
timerActive = false
end
local function buttonPressed(partTouched)
local character = partTouched.Parent
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
print("part touched")
if humanoid and timerActive == false then
print("starting timer")
startTimer()
end
end
button.Touched:Connect(buttonPressed)

Özet

Koşullar, eğlenceli oyun anları oluşturmak için farklı etkileşim yollarıyla birleştirilebilir. Bu öğretici, bir sayıya geri sayım için bir zamanlayıcı kullanarak oluşturulan bir geçici köprü oluşturur. Geçici köprü, oyuncuların geçişi için sınırlı bir süre verir.