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

أطلق الرصاص

جزء من قسم المشاريع في رحلة Godot على Coddy. الدرس 13 من 33.

يُطلق الضغط على E أو Enter (مفتاح action) رصاصة. الرصاصة مشهد، bullet.tscn. يطير بها نصّها البرمجي إلى الأمام ويزيلها بعد 0.8 ثانية. تنشئ السفينة رصاصة عند مقدمتها، وتوجّهها في الاتجاه نفسه، ثم تضيفها إلى اللعبة:

if Input.is_action_just_pressed("action"):
	var bullet = BULLET.instantiate()
	bullet.position = position + Vector2.UP.rotated(rotation) * 18
	bullet.rotation = rotation
	get_parent().add_child(bullet)

أضف الرصاصة إلى العنصر الأب للسفينة. يتحرك العنصر الابن ويدور مع العنصر الأب، لذا فإن الرصاصة الموجودة على السفينة ستتأرجح معها.

تكون is_action_just_pressed صحيحة فقط في الإطار الذي يُضغط فيه المفتاح. كل ضغطة تطلق رصاصة واحدة.

challenge icon

التحدي

متوسط
  1. أضِف const BULLET = preload("res://bullet.tscn").
  2. عند الضغط على مفتاح action للتو، أنشئ رصاصة على بُعد 18 بكسلًا أمام السفينة، واجعل لها قيمة rotation الخاصة بالسفينة، ثم أضِفها إلى العنصر الأب للسفينة.

جرّب بنفسك

extends CharacterBody2D

const TURN_SPEED = 4.0
const THRUST = 300

func _physics_process(delta):
	rotation += Input.get_axis("move_left", "move_right") * TURN_SPEED * delta
	if Input.is_action_pressed("move_up"):
		velocity += Vector2.UP.rotated(rotation) * THRUST * delta
	$Flame.visible = Input.is_action_pressed("move_up")
	position += velocity * delta
	if position.x < 0:
		position.x += 640
	if position.x > 640:
		position.x -= 640
	if position.y < 0:
		position.y += 360
	if position.y > 360:
		position.y -= 360
quiz iconاختبر نفسك

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

جميع دروس المشاريع

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