Menu
CoddyTech

Madeni Paranın Yeniden Belirmesi

Coddy'nin Lua Journey'sinin Roblox Oyunları için Kodlama bölümünün bir parçası. Ders 16 / 25.

Artık her madeni para bir kez 1 verir. Gerçek bir madeni para kaybolmalı, sonra yeniden toplanabilmesi için geri gelmelidir.

Transparency = 1 bir parçayı gizler, ancak parça yine de Touched olayını tetikler. CanTouch = false bir parçanın Touched olayını tetiklemesini, yeniden true olarak ayarlanana kadar durdurur.

Parçayı geri getirmek için Touched işlevinin içinde bekle ve değişiklikleri geri al. task.wait yalnızca bu işlevi duraklatır; bu nedenle gecikme kilidi true iken diğer dokunuşlar gelmeye devam eder ve yok sayılır:

local used = false
pad.Touched:Connect(function(hit)
	if not used then
		used = true
		pad.Transparency = 0.5
		task.wait(5)
		pad.Transparency = 0
		used = false
	end
end)

Bir dokunuştan sonra platform 5 saniye boyunca saydamlaşır; ardından geri gelir ve yeniden hazır olur.

challenge icon

Görev

Orta

Toplanan bir madeni parayı gizle, sonra 3 saniye sonra geri getir.

  1. Madeni parayı ekleyen satırdan sonra onu gizle: coin.Transparency = 1 ve coin.CanTouch = false.
  2. Ardından task.wait(3) kullan ve tekrar göster: Transparency değerini 0, CanTouch değerini true yap.
  3. Son olarak, tekrar toplanabilmesi için collected = false ayarla.

“Oyna” düğmesine bas ve bir madeni paranın içinden yürü: madeni para kaybolur ve 3 saniye sonra geri gelir. Ardından “Kontrol et” düğmesine bas.

Kendin dene

local Players = game:GetService("Players")
local coins = workspace.Coins

Players.PlayerAdded:Connect(function(player)
	local leaderstats = Instance.new("Folder")
	leaderstats.Name = "leaderstats"
	leaderstats.Parent = player

	local coinsValue = Instance.new("IntValue")
	coinsValue.Name = "Coins"
	coinsValue.Value = 0
	coinsValue.Parent = leaderstats
end)

for _, coin in coins:GetChildren() do
	local collected = false
	coin.Touched:Connect(function(hit)
		local player = Players:GetPlayerFromCharacter(hit.Parent)
		if player and not collected then
			collected = true
			player.leaderstats.Coins.Value += 1
		end
	end)
end

Roblox Oyunları için Kodlama bölümündeki tüm dersler

Kendi başına pratik yap: Online Lua derleyicisi