只能从地面起跳
本课属于 Coddy Godot 学习旅程的“输入与移动”单元。第 14 课,共 28 课。
上一课中的英雄可以在空中反复跳跃,想跳多少次都行。它应该只在站在某个物体上时跳跃。
当上一次 move_and_slide() 让角色停在地面上时,is_on_floor() 的值为 true。在空中时,它的值为 false。
and 用于连接两个条件。只有当两个条件都为真时,才会运行 if:
if Input.is_action_just_pressed("jump") and is_on_floor():
velocity.y = jump_velocity挑战
简单让英雄只能在地面上跳跃。
- 在跳跃的
if中添加第二个条件,并用and连接。 - 将条件设为
is_on_floor()。
按“开始”,然后按两次空格键:第二次按下时,英雄在空中,不会有任何动作。然后点击“检查”。
亲手试试
extends CharacterBody2D
var gravity = 1000
var jump_velocity = -500
func _physics_process(delta):
velocity.y += gravity * delta
if Input.is_action_just_pressed("jump"):
velocity.y = jump_velocity
move_and_slide()
输入与移动中的所有课
自己练习: Godot 在线编辑器