Menu
CoddyTech

上にジャンプする

CoddyのGodotジャーニー「入力と移動」セクションの一部。レッスン 13/28。

ジャンプするには、プレイヤーがjumpを押したフレームで、velocity.yに大きな上向きの速度を設定します。上方向はyが小さくなる方向なので、数値は負になります。

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()

下り方をコードに書く必要はありません。重力がvelocity.yに加わり続けるため、ヒーローは上昇するにつれて減速し、頂点で止まってから落下します。

is_action_pressedではなく、is_action_just_pressedを使います。キーを押し続けると、毎フレーム速度が-500に設定され、ヒーローは画面外へ飛んでいってしまいます。

challenge icon

チャレンジ

簡単

ヒーローをジャンプさせましょう。

  1. 重力の行の後、move_and_slide()の前に、Input.is_action_just_pressed("jump")を条件とするifを追加します。
  2. その中で、velocity.yにjump_velocityを設定します。

「プレイ」を押してSpaceキーを押すと、ヒーローがジャンプして着地します。Spaceキーを押し続けても、飛び続けることはありません。その後、「確認」を押します。

自分で試してみよう

extends CharacterBody2D

var gravity = 1000
var jump_velocity = -500

func _physics_process(delta):
	velocity.y += gravity * delta
	move_and_slide()

入力と移動のすべてのレッスン

自分で練習してみよう: Godotプレイグラウンド