ריצה וקפיצה
חלק מהיחידה קלט ותנועה במסלול ה-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 בכל פריים. היא מאפסת את מהירות הנפילה ואת הקפיצה, ולכן הגיבור מרחף.
אתגר
קלתנו לדמות לרוץ בזמן שהיא נופלת וקופצת.
- מעל
move_and_slide(), הגדירו אתvelocity.xל-Input.get_axis("move_left", "move_right")כפולspeed. - השאירו את
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()
כל השיעורים ביחידה קלט ותנועה
5פרויקט: גיבור במשחק פלטפורמה
גיבור: ריצהגיבור: קפיצהתרגלו בעצמכם: Godot אונליין