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