Menu
CoddyTech

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

جزء من قسم الإدخال والحركة في رحلة Godot على Coddy. الدرس 20 من 28.

يُرسَم البطل متجهًا إلى اليمين، ويظل متجهًا إلى اليمين عندما يركض نحو اليسار.

كل ما تراه من البطل موجود في العنصر الفرعي Look الخاص به. تؤدي قيمة -1 لـ scale.x إلى عكس اتجاه العقدة وعناصرها الفرعية من اليسار إلى اليمين. لذا اعكس Look:

if direction > 0:
	$Look.scale.x = 1
if direction < 0:
	$Look.scale.x = -1

لا تعكس CharacterBody2D نفسه، حتى يظل شكل التصادم كما هو. عندما لا يكون أي مفتاح مضغوطًا، تكون قيمة direction هي 0، ولا يُنفَّذ أيٌّ من شرطي if. يظل البطل متجهًا إلى الاتجاه الذي تحرك فيه آخر مرة.

challenge icon

التحدي

سهل

اجعل البطل يواجه الاتجاه الذي يجري نحوه.

  1. قبل move_and_slide()، اضبط $Look.scale.x على 1 عندما يكون direction > 0.
  2. اضبطه على -1 عندما يكون direction < 0.

اضغط على «العب» واجعل البطل يجري إلى اليسار: سيلتفت إلى اليسار وسيواصل مواجهة اليسار عندما تتوقف. ثم اضغط على «تحقق».

جرّب بنفسك

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