Menu
CoddyTech

只能从地面起跳

本课属于 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
challenge icon

挑战

简单

让英雄只能在地面上跳跃。

  1. 在跳跃的 if 中添加第二个条件,并用 and 连接。
  2. 将条件设为 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 在线编辑器