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

أرواح Breakout

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

عندما لا يضرب المضرب الكرة، تسقط الكرة من أسفل الشاشة. امنح اللاعب ثلاث محاولات.

في ball.gd، تُعدّ الكرة فائتة إذا تجاوز موضعها y = 380. أطلق إشارة missed وأعِد إرسال الكرة من فوق المضرب.

if position.y > 380:
	missed.emit()
	position = Vector2(320, 290)
	velocity = Vector2(110, -280)

في main.gd، أنقص عدد المحاولات. عند وصوله إلى الصفر، اعرض «انتهت اللعبة» وأوقف اللعبة مؤقتًا باستخدام get_tree().paused = true. المضرب والكرة Pausable، لذا سيتجمدان. أما Main فهو Always، لذا سيواصل العمل ويمكنه قراءة ضغط مفتاح Enter:

func _process(delta):
	if get_tree().paused and Input.is_action_just_pressed("action"):
		get_tree().paused = false
		get_tree().reload_current_scene()

ألغِ الإيقاف المؤقت قبل إعادة التحميل. فالإيقاف المؤقت ينطبق على الشجرة، لا على المشهد، لذا سيبدأ المشهد المُعاد تحميله متجمدًا.

challenge icon

التحدي

صعب
  1. في ball.gd، أضِف signal missed. عندما تكون position.y أكبر من 380، أصدِر الإشارة وأعِد الكرة إلى (320, 290) بسرعة (110, -280).
  2. في main.gd، ابدأ بـ var lives = 3 واعرض Lives: 3 في $HUD/Lives. كل مرة تفوت فيها الكرة، تُفقَد حياة ويتحدّث الملصق.
  3. عندما تصبح الأرواح 0، اعرض Game Over في $HUD/Message وأوقِف اللعبة مؤقتًا.
  4. أثناء الإيقاف المؤقت، يؤدي الضغط على Enter (مفتاح action) إلى إلغاء الإيقاف المؤقت وإعادة تحميل المشهد.

جرّب بنفسك

extends Node2D

const BRICK = preload("res://brick.tscn")
const COLORS = [Color(1, 0.42, 0.42), Color(1, 0.78, 0.34), Color(0.49, 0.95, 0.75), Color(0.369, 0.635, 1), Color(0.75, 0.82, 0.95)]

var score = 0

func _ready():
	for row in 5:
		for column in 8:
			var brick = BRICK.instantiate()
			brick.position = Vector2(68 + column * 72, 60 + row * 26)
			brick.color = COLORS[row]
			add_child(brick)
	$Ball.brick_broken.connect(_on_brick_broken)
	$HUD/Score.text = "Score: 0"

func _on_brick_broken():
	score += 10
	$HUD/Score.text = "Score: %d" % score
quiz iconاختبر نفسك

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

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

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