Verse kodun açık mı? Güzel!
Bu alıştırmada, 3. Ders: Alıştırma Zamanı’nda söz verildiği gibi Fortnite karakterine gerçekten hasar verecek işlevler çağıracaksın!
Kod yazmaya başlamadan önce UEFN adana bir cihaz eklemen gerekecek. Buna Oyuncu Doğma Karesi denir ve oyuncu karakterinin, Fortnite için varsayılan doğma konumu olan hava yerine cihazın konumunda doğmasına neden olur. Bu alıştırmadaki kodun çalışması için Oyuncu Doğma Karesi gerekiyor.
Oyuncu Doğma Karesi cihazını nasıl yerleştireceğine dair bilgiler için Kreatif Kullanıcıları için UEFN Kontrolleri bölümünde Obje Yerleştirme’ye bakabilirsin. Cihazı, adanın istediğin yerine yerleştirebilirsin.
Bu alıştırmada kullanacağın bazı kodlar senin için yeni olacak, ama her satırın ne işe yaradığını gözden geçirme şansın olacak. Her şeyi şu anda anlamazsan endişelenme. Bu alıştırma yalnızca işlevleri çağırmaya yöneliktir.
Aşağıdaki satırların tamamının, Verse dosyanın en üstünde yer aldığından emin ol. Bunlar, Verse derleyicisine, Verse ile oluşturulan cihazında yerleşik Verse ve Fortnite kodunun hangi bölümlerini kullanacağını söyler.
using { /Fortnite.com/Devices }
using { /Fortnite.com/Characters }
using { /Fortnite.com/Playspaces }
using { /Verse.org/Simulation }
using { /Verse.org/Verse }
Ardından, Fortnite karakterine hasar veren kod satırlarını yazacaksın. Bunu satır satır inceleyelim.
GetPlayspace()adlı bir işlevi çağır. Bu işlev,Playspaceadlı bir sabite kaydettiğinfort_playspacetüründe bir değer döndürür. Oyuncuları almak için buna ihtiyacın var.PlayspacesabitindekiGetPlayers()adlı bir yöntemi çağır. Yöntem,playertüründe bir dizi (array) döndürür. Dizi, Verse’te aynı türden birden çok değişkeni tutabilen bir kapsayıcıdır. Bu durumda,AllPlayersdizisi, senin bölümündeki tüm oyuncuları tutmaktadır.- Kodunda evet-hayır soruları sormak için
ifkullanabileceğini daha önce öğrenmiştin. Bu örnekte,AllPlayersdizisinin ilk konumunda bir değişken olup olmadığını sormak içinifkullanırsın.AllPlayers[0]ifadesi, varsa o konumdaki değişkenin değerini döndürürkenFirstPlayersabitiyse dönüş değerine göre başlatılır. - İlkinin içine yerleştirilmiş ikinci bir
if,FirstPlayersabitinin bir Fortnite karakterine sahip olup olmadığını, bununGetFortCharacter[]metodunu çağırarak sorar. Çağrı için kullanılan köşeli ayraçlara dikkat et. Bunlar başarısız olabilecek bir fonksiyonu çağırmak için kullanılır. Bu fonksiyonu çağırmak içinifkullanılmasının sebebi budur.GetFortCharacter[],fort_charactertüründe bir değer döndürmeyi başarırsa FortniteCharacter sabiti bu değere göre başlatılır. -
Son olarak, artık
fort_charactertüründe bir sabite sahip olduğuna göre, bununDamage()metodunu çağırabilirsin. Bu metot,floattüründe bir parametre alır. Bu da karakterin alacağı hasar miktarıdır. Bir sonraki derste parametrelerle ilgili daha fazla bilgi edineceksin.Playspace: fort_playspace = GetPlayspace() AllPlayers: []player = Playspace.GetPlayers() if (FirstPlayer : player = AllPlayers[0]): if (FortniteCharacter : fort_character = FirstPlayer.GetFortCharacter[]): FortniteCharacter.Damage(50.0)
Bu kodu çalıştırırsan oyunun başladığında Fortnite karakterinin '50.0' hasar aldığını göreceksin!
Çok iyi, değil mi?
Tam Kod
using { /Fortnite.com/Devices }
using { /Fortnite.com/Characters }
using { /Fortnite.com/Playspaces }
using { /Verse.org/Simulation }
using { /Verse.org/Verse }
hello_world_device := class(creative_device):
# Cihaz, çalışmakta olan bir oyunda başlatıldığında çalışır
OnBegin<override>()<suspends>:void=
Playspace: fort_playspace = GetPlayspace()
AllPlayers: []player = Playspace.GetPlayers()
if (FirstPlayer : player = AllPlayers[0]):
if (FortniteCharacter : fort_character = FirstPlayer.GetFortCharacter[]):
FortniteCharacter.Damage(50.0)