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

חיכוך

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

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

כדי להשתמש במספר אחר לעצירה, הקוד צריך שני מסלולים. else נותן ל־if מסלול שני, ורק אחד משניהם מתבצע:

if direction == 0:
	velocity.x = move_toward(velocity.x, 0, friction * delta)
else:
	velocity.x = move_toward(velocity.x, direction * speed, acceleration * delta)

== בודק אם שני ערכים שווים. = אחד מציב ערך במשתנה. direction == 0 הוא true כשלא מחזיקים אף מקש.

friction קטן, כמו 300, גורם להחלקה כמו על קרח. ערך גדול, כמו 2400, עוצר בתוך כמה פריימים.

challenge icon

אתגר

בינוני

גרום לגיבור לעצור במהירות. כשאף מקש לא לחוץ, האט את velocity.x עד ל־0 בקצב של friction * delta בכל פריים. כשמקש לחוץ, המשך להאיץ באמצעות acceleration.

נסו בעצמכם

extends CharacterBody2D

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

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

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

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