منصة متحركة
جزء من قسم برمجة ألعاب Roblox في رحلة Lua على Coddy. الدرس 21 من 24.
تأخذ TweenInfo.new أكثر من الوقت. قيمها بالترتيب:
- الوقت بالثواني
- نمط التسهيل، مثل
Enum.EasingStyle.Sine: كيف تتغير السرعة أثناء الحركة - اتجاه التسهيل:
InأوOutأوInOut - عدد مرات التكرار: عدد مرات التشغيل الإضافية، و
-1للتكرار إلى الأبد - العكس:
trueللتشغيل بالعكس بعد كل مرة - التأخير: عدد الثواني التي يجب انتظارها قبل أن يبدأ
local info = TweenInfo.new(1, Enum.EasingStyle.Quad, Enum.EasingDirection.Out, 2, false)هذا المثال يعمل 3 مرات (مرة واحدة، بالإضافة إلى تكرارين)، وتستغرق كل مرة ثانية واحدة، مع العودة إلى البداية بين مرات التشغيل.
يبدأ Sine مع InOut ببطء، ثم تزداد سرعته في المنتصف ويتباطأ في النهاية، وهي الطريقة الطبيعية لتحريك منصة. أما Linear فيحافظ على سرعة ثابتة طوال الحركة.
المنصة التي تتحرك باستخدام الحركة الانتقالية لا تحمل اللاعبين جانبياً؛ فعليهم المشي معها.
التحدي
متوسطينبغي أن تنزلق المنصة الزرقاء بين Z 10 وZ -10 وتواصل الحركة. يحرّكها البرنامج النصي إلى هناك مرة واحدة.
غيّر TweenInfo فقط لكي تتحرك المنصة كما يلي:
- تستغرق 3 ثوانٍ في كل اتجاه، مع تخفيف
SineInOut - تعود بعد الوصول إلى النهاية
- لا تتوقف أبدًا
اضغط على Play لمشاهدتها، ثم اضغط على Check.
جرّب بنفسك
local TweenService = game:GetService("TweenService")
local platform = script.Parent
-- TweenInfo.new(time, style, direction, repeatCount, reverses)
local info = TweenInfo.new(3, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut)
local goal = { Position = Vector3.new(0, 10, -10) }
local tween = TweenService:Create(platform, info, goal)
tween:Play()
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس برمجة ألعاب Roblox
تدرّب بنفسك: مترجم Lua عبر الإنترنت