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 عبر الإنترنت