واجه اتجاه حركتك
جزء من قسم الإدخال والحركة في رحلة Godot على Coddy. الدرس 20 من 28.
يُرسَم البطل وهو يواجه اليمين، ويظل مواجهًا لليمين عندما يركض إلى اليسار.
كل ما تراه من البطل موجود في العنصر الفرعي Look. تؤدي قيمة scale.x التي تساوي -1 إلى عكس العقدة وعناصرها الفرعية من اليسار إلى اليمين. لذا اقلب Look:
if direction > 0:
$Look.scale.x = 1
if direction < 0:
$Look.scale.x = -1لا تقلب CharacterBody2D نفسه، حتى يظل شكل التصادم كما هو. عندما لا يكون أي مفتاح مضغوطًا، تكون قيمة direction هي 0، ولا يُنفَّذ أيٌّ من شرطي if. يظل البطل يواجه الاتجاه الذي تحرك فيه آخر مرة.
التحدي
سهلاجعل البطل يواجه الاتجاه الذي يركض نحوه. عيّن $Look.scale.x إلى -1 عندما يركض إلى اليسار، وإلى 1 عندما يركض إلى اليمين. عندما تتوقف، يظل مواجهًا الاتجاه نفسه.
جرّب بنفسك
extends CharacterBody2D
var speed = 220
var acceleration = 900
var friction = 2400
var gravity = 1000
var jump_velocity = -500
func _physics_process(delta):
velocity.y += gravity * delta
if Input.is_action_just_pressed("jump") and is_on_floor():
velocity.y = jump_velocity
var direction = Input.get_axis("move_left", "move_right")
if direction == 0:
velocity.x = move_toward(velocity.x, 0, friction * delta)
else:
velocity.x = move_toward(velocity.x, direction * speed, acceleration * delta)
move_and_slide()
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الإدخال والحركة
تدرّب بنفسك: Playground لـ Godot