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

האצה הדרגתית

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

הגיבור מגיע למהירות מלאה בתוך פריים אחד ועוצר בתוך פריים אחד. התחושה נוקשה.

move_toward(from, to, step) מקדמת את המספר from לעבר to לכל היותר ב־step, בלי לעבור אותו. הערך של move_toward(0, 220, 15) הוא 15. כשמפעילים את הפונקציה שוב ושוב בכל פריים, היא מחזירה 30, 45 וכן הלאה עד 220.

השתמשו בה עבור velocity.x, כדי להתקדם לעבר המהירות שעליה המקשים מורים:

var direction = Input.get_axis("move_left", "move_right")
velocity.x = move_toward(velocity.x, direction * speed, acceleration * delta)

acceleration היא המהירות שנוספת בכל שנייה, ולכן היא מוכפלת ב־delta. עם ערך של 900, הגיבור מגיע ל־220 בתוך כרבע שנייה. כשלא מחזיקים אף מקש, היעד הוא 0, ולכן הגיבור מאט עד לעצירה.

challenge icon

אתגר

בינוני

גרום לגיבור להאיץ ולהאט בצורה חלקה. הגדר את velocity.x באמצעות move_toward, לכיוון direction * speed, בצעדים של acceleration * delta בכל פריים.

נסו בעצמכם

extends CharacterBody2D

var speed = 220
var acceleration = 900
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
	velocity.x = Input.get_axis("move_left", "move_right") * speed
	move_and_slide()
quiz iconבחנו את עצמכם

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

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

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