Menu
CoddyTech
flag He iconעבריתdown icon

הקפצה מהמשטח

חלק מהיחידה פרויקטים במסלול ה-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.

challenge icon

אתגר

בינוני

בקובץ ball.gd, גרום לכדור לקפוץ מהמשטח:

  1. חבר את body_entered אל _on_body_entered בתוך _ready.
  2. כאשר שם הגוף הוא 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
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה פרויקטים

תרגלו בעצמכם: Godot אונליין