تجميد لحظة الإصابة
جزء من قسم الإحساس باللعبة في رحلة Godot على Coddy. الدرس 17 من 23.
يوقف تجميد الضربة اللعبة لجزء من الثانية عند وقوع ضربة. وهذا يجعل الضربة تبدو قوية.
Engine.time_scale هو سرعة ساعة اللعبة. عند القيمة 1 تعمل اللعبة بشكل طبيعي. وعند القيمة 0.05، تصبح الحركة والحركات الانتقالية والمؤقتات أبطأ بعشرين مرة.
Engine.time_scale = 0.05
await get_tree().create_timer(0.1, true, false, true).timeout
Engine.time_scale = 1.0يعمل المؤقت العادي وفق الساعة المتباطئة، لذا فإن 0.1 ثانية ستستغرق ثانيتين فعليتين. تجعل قيمة true الأخيرة في create_timer المؤقت يتجاهل time_scale ويحتسب الثواني الفعلية. والقيمتان اللتان تسبقانها هما القيمتان الافتراضيتان المعتادتان.
أعِد time_scale دائمًا إلى 1. فهو يؤثر في اللعبة بأكملها، ويظل كذلك إلى أن يغيّره الكود.
التحدي
متوسطجمّد اللعبة للحظة عند الإصابة.
- بعد الوميض في
hit()، اضبطEngine.time_scaleعلى0.05. - انتظر 0.1 ثانية فعلية باستخدام مؤقّت يتجاهل مقياس الوقت، كما هو موضح أعلاه.
- أعِد ضبط
Engine.time_scaleإلى1.0.
اضغط «العب» ثم اضغط E: تتوقف الطائرة المسيّرة للحظة. ثم اضغط «تحقق».
جرّب بنفسك
extends Node2D
func hit():
modulate = Color(4, 4, 4)
var tween = create_tween()
tween.tween_property(self, "modulate", Color(1, 1, 1), 0.3)
جميع دروس الإحساس باللعبة
1التحريكات التدريجية (Tweens)
أول تحريك تدريجي لكحرّك أي خاصية تدريجيًاالتلاشيتخفيف الحركة عند النهايةواحدًا تلو الآخرفي الوقت نفسهعملة تقفزتدرّب بنفسك: Playground لـ Godot