上にジャンプする
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に設定され、ヒーローは画面外へ飛んでいってしまいます。
チャレンジ
簡単ヒーローをジャンプさせましょう。
- 重力の行の後、
move_and_slide()の前に、Input.is_action_just_pressed("jump")を条件とするifを追加します。 - その中で、
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プレイグラウンド