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

صخور منجرفة

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

تأتي الصخور بعد ذلك. الصخرة مشهد، rock.tscn، ويحركها rock.gd. تنجرف بسرعة velocity، وتدور ببطء وتلتف كما تفعل السفينة. الصخرة كبيرة، لذا تلتف عند -30 و670 بدلًا من 0 و640. وهكذا تغادر الشاشة بالكامل قبل أن تعود إليها.

ينشئ main.gd الصخور باستخدام دالة، بحيث يكون إنشاء الصخور كله في مكان واحد:

func spawn_rock(where, velocity):
	var rock = ROCK.instantiate()
	rock.position = where
	rock.velocity = velocity
	add_child(rock)

في _ready، استدعِها أربع مرات باستخدام حلقة. تحصل كل صخرة على موضع عشوائي على الحافة العلوية وسرعة عشوائية:

spawn_rock(Vector2(randf_range(0, 640), 0), Vector2(randf_range(-90, 90), randf_range(40, 90)))
challenge icon

التحدي

صعب
  1. في rock.gd، أضف _physics_process. حرّك الصخرة بمقدار velocity * delta وأضف 0.5 * delta إلى rotation.
  2. اجعل الصخرة تلتف حول الشاشة: إذا تجاوزت -30 أو 670 على x، فحرّكها 700 في الاتجاه الآخر. وإذا تجاوزت -30 أو 390 على y، فحرّكها 420.
  3. في main.gd، أضف const ROCK = preload("res://rock.tscn") ودالة spawn_rock(where, velocity). أنشئ 4 صخور في _ready كما هو موضح.

جرّب بنفسك

extends Area2D

var velocity = Vector2.ZERO

# Bursts into dust where the rock is. Call it when the rock breaks.
func burst():
	var dust = CPUParticles2D.new()
	dust.position = position
	dust.one_shot = true
	dust.explosiveness = 1.0
	dust.amount = 20
	dust.lifetime = 0.7
	dust.spread = 180.0
	dust.gravity = Vector2.ZERO
	dust.initial_velocity_min = 30.0
	dust.initial_velocity_max = 120.0 * scale.x
	dust.scale_amount_min = 2.0
	dust.scale_amount_max = 5.0
	dust.color = Color(0.75, 0.82, 0.95)
	dust.finished.connect(dust.queue_free)
	get_parent().add_child(dust)
	dust.emitting = true
quiz iconاختبر نفسك

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

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

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