واجه اتجاه حركتك
جزء من قسم الإدخال والحركة في رحلة 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. يظل البطل متجهًا إلى الاتجاه الذي تحرك فيه آخر مرة.
التحدي
سهلاجعل البطل يواجه الاتجاه الذي يجري نحوه.
- قبل
move_and_slide()، اضبط$Look.scale.xعلى1عندما يكونdirection > 0. - اضبطه على
-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