Yükseltmeler satın al

*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 bizi oyun döngüsünün son aşamasına getiriyor - yükseltmeler satın almak.Oyuncuların eşya çantasının boyutunu artıran yükseltmeler satın almasına izin vererek, her seyahatte daha fazla eşya toplayabilir ve daha fazla altın kazanabilirler.

Bir alışveriş yapoluştur

Her dükkan, oyuncuların daha büyük bir eşya çantası satın almak için tıkladığı bir düğmeye sahip olacak.Mağaza kendisi bir SurfaceGUI parçası olacak, parçalara yazı yazılmasına izin veren bir öğe.

İşareti oluştur

  1. Çalışma Alanında, Shop adlı yeni bir model oluşturun.

  2. Mağazada, Satın Al düğmesi adlı yeni bir blok parçası oluşturun.

  3. Satın Alma Düğmesinde, +'a tıklayarak ve GUI'ye kaydırarak yeni bir Yüzey GUI'si ekleyin.

  4. Yüzey GUI'sinde, Satın Alma Etiketi adlı yeni bir etiket ekleyin. Küçük bir etiket parçanın bir yerinde görünecek.

  5. Parçanın nasıl üretildiğine bağlı olarak, etiket başka bir yerde olabilir.İstediğiniz tarafta metni göremiyorsanız, SurfaceGUI'ye girin ve Yüz özelliğini bulun.Metin etiketini görene kadar bu özelliği değiştirin.

İşaret metnini değiştir

Şu anda, TextLabel gerçekten küçük ve oyuncuların görmesi zor. Ölçeklendirilmesi gerekiyor.

  1. Satın Alma Metni özelliklerinde, Boyut yanındaki okuna tıklayın. X (sol ve sağ) ve Y (yukarı ve aşağı) için Ofset değiştirin 0'a.

  2. X ve Y'nin ölçeğini 0.5'e değiştirerek bir kare oluşturun.

  3. TextLabel özelliklerinde yukarı kaydırın ve AnkerNoktası 'nın solundaki oku tıklayın.X ve Y için 0.5 yazın.Bu, etiketin bir kısmını görünümden çıkarır, ancak sonra doğru konumlandırırsınız.

  4. Özelliklerde aşağı kaydırın ve Pozisyon açın. X ve Y'nin ölçeğini 0.5'e değiştirin, böylece kutu ortada dengelenir.

  5. Satın Alma Metni özelliklerinde, aşağı kaydırın ve Metni açıklayıcı bir şeye değiştirin. durum: "Buy Larger Bag: 100 gold" .

  6. Metin Ölçeklendirilmiş olup olmadığını kontrol edin on . Bu, metnin kutuya uyması için otomatik olarak ölçeklendirir.

Bir tıklama dedektörü ekleyin

Oyuncular, sadece dokunmak yerine mağazaya tıklayarak eşyalar satın alacaklar.Senaryo, bir oyuncunun mağaza işaretine tıkladığını söylemek için bir tıklama dedektörü kullanacaktır. Tıklama Dedektörleri kullanıcıların çevredeki bir şeyle etkileşime girmesine izin veren nesnelerdir, örneğin bir kapıyı açmak.

  1. Satın Al düğmesinde, bir Tıklama Dedektörü ekleyin.

  2. Satın Al butonunda, Satın AlScript adlı yeni bir senaryo ekleyin ve açıklayıcı bir yorum verin.

  3. BuyScript'te, düğme parçasını ve tıklama dedektörünü depolamak için değişkenler oluşturun ve tıklayın.


    -- Oyuncuların, Spaces'i artıran bir yükseltme satın almak için bir düğmeye tıklamalarına izin verin
    local buyButton = script.Parent
    local clickDetector = buyButton.ClickDetector
  4. adlı yeni bir işlev oluşturun, adlı bir parametre alır ve adlı bir işlev adı verir.İşlev, oyuncunun alanlarını herhangi bir düğmeye tıkladığında yükseltecektir.


    local buyButton = script.Parent
    local clickDetector = buyButton.ClickDetector
    local function giveUpgrade(player)
    end
  5. İşlevden sonra, tıklama dedektörünün MouseClick etkinliğini giveUpgrade() işlevine bağlayın.


    local function giveUpgrade(player)
    end
    clickDetector.MouseClick:Connect(giveUpgrade)
  6. giveUpgrade() içine işlevi test etmek için bir yazdırma ifadesi ekleyin.


    local function giveUpgrade(player)
    print("Someone clicked the button.")
    end
  7. Oyna projenizi. Düğmeye tıklayın ve çıktı penceresinde metni gördüğünüzden emin olun.

Sorun giderme ipuçları

Sorun: Düğmeye tıklayamazsınız veya bir fare işaretleyici düğmeye görünmez.

  • Tıklama Dedektörü nesnesinin, tıklamaya çalıştığınız parçanın bir çocuğu olduğundan emin olun.
  • Karakterinizin butona yeterince yakın olduğundan emin olun. Veya araç donatılmadığından emin olun.

Yükseltmeler satın al

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

Yükseltme değişkenleri ekleyin

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

  1. BuyScript'te, local clickDetector , iki değişken oluştur:

    • newSpace : Bir yükseltme satın alındığında kaç alan ekler.
    • upgradeCost : Tek bir yükseltmenin maliyeti

    -- yükseltiçin değişkenler
    local newSpaces = 10
    local upgradeCost = 100

Yükseltmeler verin

Oyuncuya yükseltme satmadan önce, yeterli paraya sahip olup olmadıklarını kontrol etmeniz gerekir. Eğer yaparlarsa, maksimum alanlarına ekleyeceksiniz.

  1. In giveUpgrade() , oyuncunun lider istatistiklerine erişmek için aşağıdakileri yazın, böylece 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ı değiştirmek için alır
    local playerGold = playerStats:FindFirstChild("Gold")
    local playerSpaces = playerStats:FindFirstChild("Spaces")
    end
    end
  2. Boşluklar için değişkenleri yazdıktan sonra, playerGold değerinin yükseltme maliyetine daha fazla veya eşit olduğu durumda bir if ifadesi 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 karşılayacak yeterli para olup olmadığını kontrol eder
    if playerGold and playerSpaces and playerGold.Value >= upgradeCost then
    end
    end
    end
  3. if ifadesinde, yükseltmenin maliyetini oyuncunun altınından düşürün.


    if playerGold and playerSpaces and playerGold.Value >= upgradeCost then
    -- öğemaliyetini oyuncunun parasından çıkar
    playerGold.Value -= upgradeCost
    end
  4. Sonraki satırda, yükseltmeye verilen yeni alanlarla birlikte oyuncunun mevcut alan sayısını ekleyin.


    if playerGold and playerSpaces and playerGold.Value >= upgradeCost then
    playerGold.Value -= upgradeCost
    playerSpaces.Value += newSpaces
    end
  5. Projenizi oynayın ve alanların yükseltilmesinin çalışıp çalışmadığını kontrol etmek için lider tablosunu kontrol edin.

Sorun giderme ipuçları

Bu noktada, yükseltmeler niyet edilen şekilde çalışmıyor, aşağıdakilerden birini deneyin.

  • ıçindeki herhangi bir şeyin ın her iki tarafında alıntılar olduğundan emin olun, örneğin .
  • FindFirstChild'teki her dize PlayerSetup betiğindeki IntValue adıyla aynı olup olmadığını kontrol edin.Örneğin, kodunuz para olarak Rubileri kullanıyorsa, FindFirstChild("Rubies") sahip olmalısınız.
  • giveUpgrade() üzerinde olduğundan emin olun clickDetector.MouseClick .

Satın Alma Komutu scriptini tamamla

Senaryonun bitmiş bir versiyonu aşağıda referans olarak gösterilebilir.


-- Oyuncuların MaxSpaces'i artıran bir yükseltme satın alması için bir düğmeye tıklamasına izin verin
local buyButton = script.Parent
local clickDetector = buyButton.ClickDetector
-- yükseltiçin değişkenler
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ı değiştirmek için alır
local playerGold = playerStats:FindFirstChild("Gold")
local playerSpaces = playerStats:FindFirstChild("Spaces")
-- Oyuncunun yükseltmeyi karşılayacak yeterli para olup olmadığını kontrol eder
if playerGold and playerSpaces and playerGold.Value >= upgradeCost then
print("Player can buy item")
-- öğemaliyetini oyuncunun parasından çıkar
playerGold.Value -= upgradeCost
playerSpaces.Value += newSpaces
end
end
end
clickDetector.MouseClick:Connect(giveUpgrade)