صخور منجرفة
جزء من قسم المشاريع في رحلة 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)))التحدي
صعب- في
rock.gd، أضف_physics_process. حرّك الصخرة بمقدارvelocity * deltaوأضف0.5 * deltaإلىrotation. - اجعل الصخرة تلتف حول الشاشة: إذا تجاوزت -30 أو 670 على
x، فحرّكها 700 في الاتجاه الآخر. وإذا تجاوزت -30 أو 390 علىy، فحرّكها 420. - في
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
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المشاريع
2مشروع: مطلق النار على الكويكبات
أدر السفينةأشعل المحركتدرّب بنفسك: Playground لـ Godot