Pecahkan Tumpukan
Pelajaran 3 dari 18 dalam kursus Game Roblox: Simulator Hewan Peliharaan di Coddy.
Pemain memecahkan tumpukan dengan mengekliknya. ClickDetector di dalam sebuah bagian memicu MouseClick di server, dengan pemain yang mengeklik, saat mereka cukup dekat.
Setiap klik mengurangi Health tumpukan sebanyak 1. Saat nilainya mencapai 0, tumpukan itu pecah: pemain mendapat koin sebanyak Value-nya, lalu tumpukan itu dihancurkan.
local health = pile:GetAttribute("Health") - 1
if health > 0 then
pile:SetAttribute("Health", health)
return
end
-- rusakKlik dihubungkan di dalam spawnPile, lalu memanggil hitPile, yang ditulis di bawah spawnPile. Sebuah fungsi hanya dapat menggunakan nama lokal yang sudah dideklarasikan, jadi deklarasikan local hitPile terlebih dahulu, sebelum keduanya, lalu isi nanti dengan function hitPile(player, pile).
Tantangan
Mudah- Di atas
spawnPile, deklarasikanlocal hitPile. - Di dalam
spawnPile, tambahkan ClickDetector ke pile dan hubungkanMouseClick-nya kehitPile(player, pile). - Di bawah
spawnPile, tulisfunction hitPile(player, pile): kurangi atribut Health sebanyak 1; jika nilainya masih di atas 0, simpan nilainya lalu hentikan; jika tidak, tambahkan Value dari pile ke Coins milik pemain lalu hancurkan pile.
Tekan Play dan klik pile tiga kali. Lalu tekan Periksa.
Coba sendiri
local Players = game:GetService("Players")
local ServerStorage = game:GetService("ServerStorage")
local Settings = require(game.ReplicatedStorage.Settings)
local piles = workspace.Piles
print("A Meadow pile gives " .. Settings.PileValue .. " coins")
-- Setiap pemain mendapat Coins di papan peringkat
Players.PlayerAdded:Connect(function(player)
local leaderstats = Instance.new("Folder")
leaderstats.Name = "leaderstats"
leaderstats.Parent = player
local coins = Instance.new("IntValue")
coins.Name = "Coins"
coins.Parent = leaderstats
end)
-- Tumpukan koin di sebuah lokasi: salinan ServerStorage.CoinPile dengan kesehatannya
-- dan nilainya sebagai atribut
local function spawnPile(spot)
local pile = ServerStorage.CoinPile:Clone()
pile.Position = spot.Position
pile:SetAttribute("MaxHealth", Settings.PileHealth)
pile:SetAttribute("Health", Settings.PileHealth)
pile:SetAttribute("Value", Settings.PileValue)
pile.Parent = piles
return pile
end
-- Satu tumpukan di setiap lokasi di Meadow
for _, spot in workspace.Zones.Meadow.Spawns:GetChildren() do
spawnPile(spot)
end
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Game Roblox: Simulator Hewan Peliharaan
Latihan sendiri: Playground Roblox