Bu adımda Verse’te, Süreölçer ve Oyunu Bitir cihazlarını kullanan bir süreölçer sistemi oluşturacaksın. Oyuncu herhangi bir hedefi vurduğunda süreölçer süreyi başlatacak, süreölçerin süresi dolduğunda oyun sona erecek ve puan tablosu görüntülenecektir.
Oyununu Ada Ayarları ile veya yalnızca cihazlar ile süreölçerde bitirebilirsin ancak Verse kullandığında yararlandığın oyun mekanikleri üzerindeki kontrolün artar.
Adanın Ayarlarını Değiştir
Görünüm penceresinde veya Anahat Düzenleyicisi panelinde Ada Ayarları cihazını seç.
Ayrıntılar panelinde aşağıdaki parametreleri ayarla:
Bitiş İçin Gereken İstatistik seçeneğinin işaretini kaldır. Böylece orijinal puanlama bitiş koşulu kaldırılmış olur ve sonrasında onu süreölçer ile değiştirebilirsin.
Oyun Puanı Görünüm Süresi’ni 10 saniye olarak ayarla.
Birinci Puan Tablosu Sütunu’nu etkinleştir, ardından Puan olarak ayarla.
İçerik Tarayıcısı’nı kullanarak Süreölçer Cihazı’nı bul ve ardından onu görünüm penceresine sürükle.
Ayrıntılar panelinde, Oyun Sırasında Görünür’ü Gizli olarak ayarla. Böylece oyun sırasında süreölçer objesi gizlenir, ancak obje aktif olduğu sürece süre oyuncunun gösterge panelinde görüntülenmeye devam eder.
İçerik Tarayıcısı’nı kullanarak Oyunu Sonlandırma Cihazı’nı bul ve ardından onu görünüm penceresine sürükle.
Verse Kodu Yaz
Bu sayfa, kodda yapılacak değişikliklerde sana adım adım rehberlik sağlar, ancak çalışmanı kontrol etmek istersen nihai sonuç için Tam Kod bölümünü inceleyebilirsin.
shooting_range_manager_device.versedosyasını aç.Yeni cihaz referanslarını depolamak için aşağıdaki değişkenleri, süreölçerin durumunu takip etmek için de bir mantık işareti ekle.
İşaret değişkeni, kodunda belirli bir koşulun karşılanıp karşılanmadığını takip etmek için yer alan bir değişkeni ifade eder. Burada işaret
IsTimerStartedolup false “hayır”, true ise “evet” anlamına gelir.Verse@editable Timer:timer_device = timer_device{} @editable EndGame:end_game_device = end_game_device{} var IsTimerStarted:logic = falseOyunu bitirmek için süreölçerin süresi dolduğunda çağrılacak olan
OnTimerSuccessgeri çağırma metodunu ekle.OnTimerSuccess metodu, varsa süreölçeri etkinleştiren aracı olan isteğe bağlı bir aracı parametresi alır. Oyunu Sonlandırma cihazının etkinleşmesi için isteğe bağlı olmayan bir aracı parametresi gereklidir, bu yüzden isteğe bağlı aracı,
ififadesinde isteğe bağlı olmayan aracıya dönüştürülür. Seçenek türleri hakkında daha fazla bilgi için seçenek kısmına bakabilirsin.Verse# When time runs out, end the game. OnTimerSuccess(Agent:?agent):void= if (TriggerAgent := Agent?): EndGame.Activate(TriggerAgent)Süreölçerin OnTimerSuccess geri çağırmasına, aboneliğini ayarlayan ve süreölçeri başlatan StartTimer metodunu ekle.
Verse# Setup and start the timer. StartTimer():void= # Set the event subscription to call OnTimerSuccess when the timer finishes. Timer.SuccessEvent.Subscribe(OnTimerSuccess) # Start the timer. Timer.Start() # Track that the timer has started. set IsTimerStarted = trueAdjustScore metodunu, süreölçeri başlatacak şekilde değiştir. Bu, oyuncuya oyuna başlamak üzere ilk atışını hazırlaması için biraz zaman verir.
Verse# Adjusts the player's score by the provided value. AdjustScore(Value:int):void= <# --- New Code Start --- #> # Start the timer if it hasn't started yet. if (not IsTimerStarted?): StartTimer() <# --- New Code End --- #>Verse kodunu kaydet ve derle.
Tam Kod
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
# A device that manages shooting range gameplay.
shooting_range_manager_device := class(creative_device):
@editable
ScoreManager:score_manager_device = score_manager_device{}
@editable
Hepsini Bir Araya Getir
Görünüm penceresinde veya Anahat Düzenleyicisi panelinde shooting_range_manager_device’ı seç.
Ayrıntılar panelinde aşağıdaki parametreleri ayarla:
Süreölçeri, Süreölçer cihazı olarak ayarla.
EndGame’i Oyunu Sonlandırma cihazı olarak ayarla.
Değişikliklerini gönder ve adanın oynanış testini yap.
Herhangi bir hedefe ateş ettiğinde süreölçerin başladığını doğrula.
Süreölçerin süresi dolduğunda oyunun sona erdiğini ve puan tablosunun görüntülendiğini doğrula.
Daha Fazlasına Hazır Mısın?
3. Bonus Süre Hedefi
Oyuncuları, oyuna çok değerli saniyeler ekleyebilecek sürpriz bir ekstra hedefle ödüllendir!