Geliştirmeleri Satın Alma

*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, oyun döngüsünün son aşamasına getirir - yükseltmeleri satın almak. Oyuncuların eşya çantasının boyutunu artıran yükseltmeleri satın alarak, her gezinti için daha fazla eşya toplayabilir ve hatta daha fazla altın kazanabilirler.

Bir Dükurma Oluşturulması

Her dükkanın bir düğmesine sahip olacak, böylece oyuncular daha büyük bir öğe çantası satın alabilirler. Dükkanın kendisi bir SurfaceGUI olacak, böylece parçalarda yazı yazılabilen bir öğe izin veren bir parçadır.

İşaret Oluşturulması

  1. Çalışma Alanında, Shop adında yeni bir model oluştur.

  2. Dükkanda, BuyButton adında yeni bir blok parçası oluşturun.

  3. In BuyButton, +'i tıklayarak ve GUI'yi kaydırerek Yeni Bir Yüze GUI Ekle.

  4. Yüzey GUI'sinde, BuyText adında yeni bir TextLabel ekleyin. Parçanın herhangi bir yerinde küçük bir etiket görünecek.

  5. Parçanın nasıl yapıldığına bağlı olarak etiket başka bir yerde olabilir. Eğer görsel etiketi görmezseniz, yüzey GUI'sine gidin ve Yüz özelliğini değiştirin. Görsel etiketi görene kadar bu özelliği değiştirin.

İşaret Metni'ni Değiştirme

Şu anda, TextLabel oyuncular tarafından görülebilir olmayan gerçekten küçük ve zor. Onun boyutu artırılmalıdır.

  1. In the BuyText properties, click on the arrow next to Boyut . Change the Offset for X (left and right) and Y (up and down) to 0.

  2. Kare oluşturmak için X ve Y'nin ölçeğini 0.5'e değiştir.

  3. TextLabel özelliklerinde kaydırın ve AnchorPoint 'in solundaki oka tıklayın. X ve Y için 0.5 yazın. Bu, etiketinizin görünümünden bir kısmını gizleyecek, ancak bunu bir sonraki göre doğru olarak yerleştireceksiniz.

  4. Özelliklerde kaydırın ve Position 'yi açın. X ve Y'nin ölçeğini 0.5'e ayarlayın, böylece kutu orta merkezde olacak.

  5. In the BuyText özelliklerinde, kaydırın ve Metin değerini açıklayıcı bir şeyle değiştirin. durum: "Buy Larger Bag: 100 gold" .

  6. Check TextScaled to be on . This automatically scales your text so it fits the box.

Bir Tıklama Algılayıcı Ekleme

Oyuncular, sadece dokunmak yerine dükkanı tıklayarak eşya satın alacaklar. Kod, bir oyuncunun dükkan işaretine tıkladığını görmek için bir tıklama algılayıcısı kullanacak. TıklamaAlgılayıcılar bir oyuncunun çevrebir etkileşim olmasını sağlayan nesnelerdir, örneğin bir kapıyı açmak.

  1. AlButon'a, bir ClickDetector ekleyin.

  2. In BuyButton, BuyScript adında yeni bir senaryo ekler ve açıklayıcı bir yorum verir.

  3. In BuyScript, buton bölümünü depolamak için değişkenler oluşturun ve klik detector'ına tıklayın.


    -- Oyunculara Alanları Genişleten bir Yükseltmeyi satın almak için bir düğmeye tıklamalarını sağlayalım
    local buyButton = script.Parent
    local clickDetector = buyButton.ClickDetector
  4. Oyuncunun ismini alanını herhangi bir anda tıkladığında oyuncunun alanını yükseltir. giveUpgrade() adlı yeni bir işlev oluşturun, oyuncunun alanını herhangi bir anda yükseltir.


    local buyButton = script.Parent
    local clickDetector = buyButton.ClickDetector
    local function giveUpgrade(player)
    end
  5. Fonksiyonun ardından, MouseClick işlevini giveUpgrade() işlevine bağlayın.


    local function giveUpgrade(player)
    end
    clickDetector.MouseClick:Connect(giveUpgrade)
  6. giveUpgrade() işlevini test etmek için bir print statement ekleyin.


    local function giveUpgrade(player)
    print("Someone clicked the button.")
    end
  7. Oyunu oyna projünüzü. Düğmeye tıklayın ve çıktı pencerede gördüğünüz metni kontrol edin.

Hata ayıklama ipuçları

Sorun: Butona tıklayamazsınız veya bir fare kurucu butunda görünmez.

  • ClickDetector nesnesinin parçaya tıkladığınızda bir çocuğu olduğundan emin olun.
  • Karakterinizin düğmeye yeterince yakın olduğundan emin olun. Aksi takdirde, aletin donanımını sağlayın.

Geliştirmeleri Satın Alma

Çalışan bir düğme ile, giveUpgrade'a kod eklemek zamanıdır, bir oyuncunun altınını yükseltmenin karşılığında kaldırmak için.

Yükseltme Değişkenleri Ekleme

Her yükseltmede iki değişken olacak: yükseltmenin maliyeti ve kaç alanı olduğu.

  1. In BuyScript, under local clickDetector , iki değişken oluşturun:

    • newSpace : Bir yükseltmede kaç alan ekleneceği.
    • upgradeCost : Tek bir yükseltmenin maliyeti

    -- yükseltiçin çeşitli
    local newSpaces = 10
    local upgradeCost = 100

Geliştirmeleri Verme

Oyuncuya yükseltmeyi satmadan önce, onların yeterli paraları olduğundan emin olmalısınız. Eğer öyleyse, maksimum onların sayısına katılacaksınız.

  1. In giveUpgrade() , oyuncu'ın lider istatistiklerini alabilmek için aşağıdaki kutuya yazın, böylece onların altın ve alan değişkenlerine erişebilirsiniz.


    local function giveUpgrade(player)
    print("Someone clicked the button")
    -- Diğer IntValues almak için oyuncunun lider tablosunu alır
    local playerStats = player:FindFirstChild("leaderstats")
    if playerStats then
    -- oyuncupara ve alanlarını alarak değişiklikler yapar
    local playerGold = playerStats:FindFirstChild("Gold")
    local playerSpaces = playerStats:FindFirstChild("Spaces")
    end
    end
  2. Boşluk çeşitleri için değişkenleri yazdıktan sonra, playerGold değerinin yükseltme maliyetinden daha fazla veya eşit olup olmadığını ifade etmek için bir if statement oluşturun.


    local function giveUpgrade(player)
    local playerStats = player:FindFirstChild("leaderstats")
    if playerStats then
    local playerGold = playerStats:FindFirstChild("Gold")
    local playerSpaces = playerStats:FindFirstChild("Spaces")
    -- Oyuncunun yükseltmeyi finanse etmesine izin verdiği paraya sahip olduğunu kontrol eder
    if playerGold and playerSpaces and playerGold.Value >= upgradeCost then
    end
    end
    end
  3. if ifadesinde, yükseltmenin maliyetini oyuncunun altından çıkarın.


    if playerGold and playerSpaces and playerGold.Value >= upgradeCost then
    -- öğemaliyetini oyuncunun parasından düşür
    playerGold.Value -= upgradeCost
    end
  4. Sonraki satırda, oyuncunun mevcut alanlarının yeni alanları ile birleştirilmesi için oyuncunun mevcut alanlarının sayısını ekleyin.


    if playerGold and playerSpaces and playerGold.Value >= upgradeCost then
    playerGold.Value -= upgradeCost
    playerSpaces.Value += newSpaces
    end
  5. Projenizi oynatın ve lider tablosunu kontrol edin, böylece uzay yükseltmesinin işlediğini kontrol edebilirsiniz.

Hata ayıklama ipuçları

Bu noktada, yükseltmeler planlanan gibi çalışmaz, aşağıdaki birini deneyin.

  • Make sure anything in the () of FindFirstChild() Error: both sides, like 1> "leaderstats"1> .
  • FindFirstChild'in her satırının PlayerSetup kodunda bulunan IntValue'in adı ile aynı olduğundan emin olun. Örneğin, kodunuz Ruby olarak para kullanıyorsa, FindFirstChild("Rubies") olmalıdır.
  • Make sure that giveUpgrade() is above clickDetector.MouseClick .

Scripti Satın Al

Skriptin bitirilmiş bir versiyonu aşağıda referanslanabilir.


-- Oyuncular MaxSpaces'ı artıran bir yükseltmeyi satın almak için bir düğmeye tıklasın
local buyButton = script.Parent
local clickDetector = buyButton.ClickDetector
-- yükseltiçin çeşitli
local newSpaces = 10
local upgradeCost = 100
local function giveUpgrade(player)
print("Someone clicked the button")
-- Diğer IntValues almak için oyuncunun lider tablosunu alır
local playerStats = player:FindFirstChild("leaderstats")
if playerStats then
-- oyuncupara ve alanlarını alarak değişiklikler yapar
local playerGold = playerStats:FindFirstChild("Gold")
local playerSpaces = playerStats:FindFirstChild("Spaces")
-- Oyuncunun yükseltmeyi finanse etmesine izin verdiği paraya sahip olduğunu kontrol eder
if playerGold and playerSpaces and playerGold.Value >= upgradeCost then
print("Player can buy item")
-- öğemaliyetini oyuncunun parasından düşür
playerGold.Value -= upgradeCost
playerSpaces.Value += newSpaces
end
end
end
clickDetector.MouseClick:Connect(giveUpgrade)