床からのみジャンプ
CoddyのGodotジャーニー「入力と移動」セクションの一部。レッスン 14/28。
前のレッスンのヒーローは、空中でも好きなだけ何度でもジャンプできます。何かの上に立っているときだけジャンプするようにしましょう。
is_on_floor() は、最後の move_and_slide() によってボディが床の上に残った場合に true になります。空中では false になります。
and は2つの条件をつなぎます。両方がtrueの場合にのみ、if が実行されます。
if Input.is_action_just_pressed("jump") and is_on_floor():
velocity.y = jump_velocityチャレンジ
簡単ヒーローが床にいるときだけジャンプするようにしましょう。
- ジャンプの
ifにandを使って2つ目の条件を追加します。 is_on_floor()にします。
「プレイ」を押して、スペースキーを2回押します。空中で押す2回目は何も起こりません。その後、「確認」を押します。
自分で試してみよう
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プレイグラウンド