שבירת הלבנים
חלק מהיחידה פרויקטים במסלול ה-Godot של Coddy. שיעור 6 מתוך 36.
הכדור עובר דרך הלבנים. גם לבנים הן גופים, וכל אחת מהן נמצאת בקבוצה bricks. is_in_group מבחינה בין לבנה למשוט.
לכל לבנה יש פונקציה smash(). היא מפוצצת את הלבנה לניצוצות ומסירה אותה.
elif body.is_in_group("bricks"):
body.smash()לאחר מכן הכדור קופץ הרחק מאמצע הלבנה: למטה אם הוא נמוך יותר מהלבנה, למעלה אם הוא גבוה יותר. הכדור יכול לפגוע בלבנה מלמעלה אחרי שהחליק דרך פער.
if position.y > body.position.y:
velocity.y = abs(velocity.y)
else:
velocity.y = -abs(velocity.y)אל תהפכו את velocity.y. אם הכדור נוגע בשתי לבנים בו-זמנית, שתי ההיפוכים מתבטלים זה בזה.
אתגר
בינוניתן לכדור לשבור לבנים.
- בתוך
_on_body_entered, הוסףelifעבור גופים בקבוצהbricks. - קרא ל־
body.smash(). - הקפץ את הכדור כלפי מטה אם הוא מתחת לאמצע הלבנה, וכלפי מעלה אם הוא מעליו.
לחץ על "שחק": הלבנים מתנפצות אחת בכל פעם. אחר כך לחץ על "בדיקה".
נסו בעצמכם
extends Area2D
var velocity = Vector2(110, -280)
func _ready():
body_entered.connect(_on_body_entered)
func _physics_process(delta):
position += velocity * delta
if position.x < 8 or position.x > 632:
velocity.x = -velocity.x
if position.y < 42:
velocity.y = -velocity.y
func _on_body_entered(body):
if body.name == "Paddle":
velocity.x = (position.x - body.position.x) * 5
velocity.y = -abs(velocity.y)
כל השיעורים ביחידה פרויקטים
תרגלו בעצמכם: Godot אונליין