Menu
CoddyTech

ריצה וקפיצה

חלק מהיחידה קלט ותנועה במסלול ה-Godot של Coddy. שיעור 15 מתוך 28.

התנועה משנה רק את velocity.x. כוח הכבידה והקפיצה משנים רק את velocity.y. לכן יש להגדיר את שני הרכיבים בנפרד:

velocity.x = Input.get_axis("move_left", "move_right") * speed

אל תגדירו את כל וקטור המהירות, כך:

velocity = Vector2(Input.get_axis("move_left", "move_right") * speed, 0)

השורה הזאת מגדירה את velocity.y ל-0 בכל פריים. היא מאפסת את מהירות הנפילה ואת הקפיצה, ולכן הגיבור מרחף.

challenge icon

אתגר

קל

תנו לדמות לרוץ בזמן שהיא נופלת וקופצת.

  1. מעל move_and_slide(), הגדירו את velocity.x ל-Input.get_axis("move_left", "move_right") כפול speed.
  2. השאירו את velocity.y לכוח הכבידה ולקפיצה.

לחצו על "שחק": הדמות רצה במהירות של 220 פיקסלים לשנייה ויכולה לקפוץ למעלה וימינה. לאחר מכן לחצו על "בדיקה".

נסו בעצמכם

extends CharacterBody2D

var speed = 220
var gravity = 1000
var jump_velocity = -500

func _physics_process(delta):
	velocity.y += gravity * delta
	if Input.is_action_just_pressed("jump") and is_on_floor():
		velocity.y = jump_velocity
	move_and_slide()

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

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