Menu
CoddyTech
flag Ar iconالعربيةdown icon

واجه اتجاه حركتك

جزء من قسم الإدخال والحركة في رحلة 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. يظل البطل يواجه الاتجاه الذي تحرك فيه آخر مرة.

challenge icon

التحدي

سهل

اجعل البطل يواجه الاتجاه الذي يركض نحوه. عيّن $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()
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

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

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