Menu
CoddyTech

تجميد لحظة الإصابة

جزء من قسم الإحساس باللعبة في رحلة 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. فهو يؤثر في اللعبة بأكملها، ويظل كذلك إلى أن يغيّره الكود.

challenge icon

التحدي

متوسط

جمّد اللعبة للحظة عند الإصابة.

  1. بعد الوميض في hit()، اضبط Engine.time_scale على 0.05.
  2. انتظر 0.1 ثانية فعلية باستخدام مؤقّت يتجاهل مقياس الوقت، كما هو موضح أعلاه.
  3. أعِد ضبط 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)

جميع دروس الإحساس باللعبة

تدرّب بنفسك: Playground لـ Godot