הגבל למסך
חלק מהיחידה קלט ותנועה במסלול ה-Godot של Coddy. שיעור 21 מתוך 28.
נעים שמאלה והגיבור יוצא מהמסך. clamp(value, low, high) משאירה מספר בין שני קצוות. היא מחזירה את low אם value קטן ממנו, את high אם value גדול ממנו, ואת value אחרת. clamp(700, 14, 626) היא 626.
הגבילו את המיקום אחרי התנועה ושמרו את התוצאה:
move_and_slide()
position.x = clamp(position.x, 14, 626)position הוא מרכז הגיבור, ורוחב הגיבור הוא 28 פיקסלים. לכן המרכז שלו נשאר במרחק של 14 פיקסלים מכל קצה של המסך שרוחבו 640 פיקסלים, והגיבור כולו נשאר גלוי.
אתגר
קלהשאר את הגיבור כולו על המסך.
- אחרי
move_and_slide(), הגדר אתposition.xבאמצעותclamp(). - הגבל אותו בין
14ל־626.
לחץ על "שחק" ורוץ לכל אחד מהצדדים: הגיבור נעצר בקצה, כולו על המסך. ואז לחץ על "בדיקה".
נסו בעצמכם
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")
if direction == 0:
velocity.x = move_toward(velocity.x, 0, friction * delta)
else:
velocity.x = move_toward(velocity.x, direction * speed, acceleration * delta)
if direction > 0:
$Look.scale.x = 1
if direction < 0:
$Look.scale.x = -1
move_and_slide()
כל השיעורים ביחידה קלט ותנועה
5פרויקט: גיבור במשחק פלטפורמה
גיבור: ריצהגיבור: קפיצהתרגלו בעצמכם: Godot אונליין