סלעים נסחפים
חלק מהיחידה פרויקטים במסלול ה-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
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה פרויקטים
תרגלו בעצמכם: Godot אונליין