Menu
CoddyTech

הופעת מטבעות מחדש

חלק מהיחידה תכנות משחקים ב-Roblox במסלול ה-Lua של Coddy. שיעור 16 מתוך 25.

כל מטבע נותן עכשיו 1, פעם אחת. מטבע אמיתי צריך להיעלם ואז לחזור, כדי שאפשר יהיה לאסוף אותו שוב.

Transparency = 1 מסתיר חלק, אבל הוא עדיין מפעיל את Touched. CanTouch = false גורם לחלק להפסיק להפעיל את Touched עד שמחזירים אותו ל־true.

כדי להחזיר אותו, מחכים בתוך פונקציית Touched ומבטלים את השינויים. task.wait משהה רק את הפונקציה הזאת, כך שנגיעות אחרות ממשיכות להגיע ונעשה להן התעלמות כל עוד מנגנון ההשהיה הוא true:

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)

המשטח מתפוגג למשך 5 שניות אחרי נגיעה, ואז הוא חוזר ומוכן שוב.

challenge icon

אתגר

בינוני

הסתירו מטבע שנאסף, ואז החזירו אותו כעבור 3 שניות.

  1. אחרי השורה שמוסיפה את המטבע, הסתירו אותו: coin.Transparency = 1 וגם coin.CanTouch = false.
  2. אחר כך task.wait(3) והציגו אותו שוב: Transparency 0, CanTouch true.
  3. לבסוף, הגדירו collected = false כדי שאפשר יהיה לאסוף אותו שוב.

לחצו על "שחק" ועברו דרך מטבע: הוא נעלם וחוזר כעבור 3 שניות. לאחר מכן לחצו על "בדיקה".

נסו בעצמכם

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

תרגלו בעצמכם: קומפיילר Lua אונליין