اهتزاز الشاشة
جزء من قسم الإحساس باللعبة في رحلة Godot على Coddy. الدرس 11 من 23.
يهز اهتزاز الشاشة المشهد في لحظة مهمة، مثل الدوس أو الانفجار. في هذا المستوى، يستدعي E الدالة start_shake() الخاصة بالكاميرا، التي تضبط shake على 12. لا يتحرك شيء بعد.
تحتوي Camera2D على offset، وهو Vector2 يزيح المشهد من دون تحريك عقدة الكاميرا. يؤدي إنشاء إزاحة عشوائية جديدة في كل إطار إلى اهتزاز المشهد.
offset = Vector2(randf_range(-shake, shake), randf_range(-shake, shake))يجب أن يتوقف الاهتزاز. خفّض shake باتجاه 0 في كل إطار باستخدام move_toward، كي تصبح القفزات أصغر.
shake = move_toward(shake, 0.0, 30.0 * delta)عندما تصل shake إلى 0، يصبح العددان العشوائيان 0، وتعود offset إلى Vector2(0, 0).
التحدي
متوسطاهتزّ الشاشة عندما يدوس الروبوت.
- في
_process، قرّبshakeمن 0 بمقدار30.0 * deltaباستخدامmove_toward. - عيّن
offsetإلىVector2بقيمتين عشوائيتين لـ x وy بين-shakeوshake.
اضغط على «العب» ثم اضغط على E للدوس: سيهتزّ المشهد ثم يستقر. ثم اضغط على «تحقق».
جرّب بنفسك
extends Camera2D
var shake = 0.0
func _ready():
limit_left = 0
limit_top = 0
limit_right = 1600
limit_bottom = 360
func start_shake():
shake = 12.0
func _process(delta):
pass
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الإحساس باللعبة
1التحريكات التدريجية (Tweens)
أول تحريك تدريجي لكحرّك أي خاصية تدريجيًاالتلاشيتخفيف الحركة عند النهايةواحدًا تلو الآخرفي الوقت نفسهعملة تقفزتدرّب بنفسك: Playground لـ Godot