Limiter à l’écran
Fait partie de la section Entrées et déplacements du Journey Godot de Coddy. Leçon 21 sur 28.
Courez vers la gauche et le héros sort de l’écran. clamp(value, low, high) maintient un nombre entre deux limites. Cette fonction renvoie low si value est inférieur à cette valeur, high si value est supérieur à cette valeur, et value dans les autres cas. clamp(700, 14, 626) vaut 626.
Limitez la position après le déplacement et stockez le résultat :
move_and_slide()
position.x = clamp(position.x, 14, 626)position correspond au centre du héros, et le héros mesure 28 pixels de large. Ainsi, son centre reste à 14 pixels de chaque bord de l’écran de 640 pixels, et le héros reste entièrement visible.
Défi
FacileGardez le héros entièrement à l’écran. Après move_and_slide(), limitez position.x entre 14 et 626.
Essayez vous-même
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()
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Entrées et déplacements
1Actions d’entrée
Appuyer pour se déplacerGauche et droiteUn axeQuatre directionsVient d’être appuyéEntrée non gérée4Mouvement fluide
Accélérer progressivementFrictionRegarder dans le sens du mouvementLimiter à l’écranLimiter sur les deux axes2CharacterBody2D
CharacterBody2DSe déplacer avec une vélocitéLes murs vous arrêtentSe déplacer partoutDiagonales équilibrées5Projet : Héros de jeu de plateforme
Héros : CourirHéros : SauterEntraînez-vous par vous-même : Playground Godot