הקפצת הכדור מהמשטח
חלק מהיחידה פרויקטים במסלול ה-Godot של Coddy. שיעור 4 מתוך 36.
הכדור עובר דרך המשטח. הכדור הוא Area2D. האות body_entered שלו מופעלת כשגוף, כמו המשטח, נוגע בו. כוון את הכדור כלפי מעלה כשהגוף הזה הוא המשטח:
func _ready():
body_entered.connect(_on_body_entered)
func _on_body_entered(body):
if body.name == "Paddle":
velocity.y = -abs(velocity.y)abs() מסירה את סימן המינוס, ולכן -abs(velocity.y) תמיד מכוון כלפי מעלה. מגע שני לא יכול לשלוח את הכדור בחזרה למטה.
כדי לאפשר לשחקן לכוון, קבע את velocity.x לפי המקום שבו הכדור פוגע. position.x - body.position.x הוא המרחק של הכדור ממרכז המשטח. הוא שלילי בחצי השמאלי וחיובי בחצי הימני. הכפל אותו ב־5.
אתגר
בינוניגרמו לכדור לקפוץ מהמשטח.
- ב־
ball.gd, חברו אתbody_enteredאל_on_body_enteredבתוך_ready. - כאשר שם הגוף הוא
Paddle, הגדירו אתvelocity.xל־(position.x - body.position.x) * 5ואתvelocity.yל־-abs(velocity.y).
לחצו על "שחק" ותפסו את הכדור: הוא עף בחזרה למעלה, לכיוון הצד שבו פגע. לאחר מכן לחצו על "בדיקה".
נסו בעצמכם
extends Area2D
var velocity = Vector2(110, -280)
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
כל השיעורים ביחידה פרויקטים
1פרויקט: בריקאאוט
משטח בריקאאוטהשארת המשטח על המסךתרגלו בעצמכם: Godot אונליין