إعادة ظهور العملة
جزء من قسم برمجة ألعاب 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 ثوانٍ بعد لمسه، ثم يعود ويصبح جاهزًا مرة أخرى.
التحدي
متوسطاجعل القطعة النقدية التي جُمعت تختفي، ثم تعود بعد 3 ثوانٍ.
- بعد السطر الذي يضيف القطعة النقدية، أخفِها:
coin.Transparency = 1وcoin.CanTouch = false. - ثم انتظر
task.wait(3)وأظهرها مجددًا:Transparency0، وCanTouchtrue. - أخيرًا، عيّن
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
5لعبتك الأولى
أول لعبة Obby لك3الأحداث واللاعبون
لوحة اللمسأرضية الحممإحصاءات المتصدرينمن لمسها؟جامع العملاتإعادة ظهور العملةباب العملاتتدرّب بنفسك: مترجم Lua عبر الإنترنت