Lompatan Ganda
Termasuk bagian Input dan Pergerakan dalam perjalanan Godot di Coddy. Pelajaran 17 dari 28.
Lompatan ganda memungkinkan hero melompat sekali lagi di udara. is_on_floor() tidak dapat memungkinkan hal itu, jadi hero menghitung lompatan yang dilakukannya.
Simpan hitungannya dalam variabel. Atur nilainya menjadi 2 saat hero berada di lantai, lalu kurangi satu untuk setiap lompatan:
var jumps_left = 0
func _physics_process(delta):
velocity.y += gravity * delta
if is_on_floor():
jumps_left = 2
if Input.is_action_just_pressed("jump") and jumps_left > 0:
velocity.y = jump_velocity
jumps_left -= 1Lompatan pertama membuat jumps_left menjadi 1, dan lompatan di udara membuatnya menjadi 0. Tekanan ketiga tidak melakukan apa-apa. Saat mendarat, nilainya kembali menjadi 2.
Tantangan
SedangBuat hero bisa melakukan lompatan ganda. Hero bisa melompat dua kali sebelum mendarat, tidak pernah tiga kali. Hitung lompatan dalam variabel jumps_left yang diatur ke 2 saat hero berada di tanah.
Coba sendiri
extends CharacterBody2D
var speed = 220
var gravity = 1000
var jump_velocity = -500
func _physics_process(delta):
velocity.y += gravity * delta
if Input.is_action_just_pressed("jump") and is_on_floor():
velocity.y = jump_velocity
if Input.is_action_just_released("jump") and velocity.y < 0:
velocity.y = velocity.y / 2
velocity.x = Input.get_axis("move_left", "move_right") * speed
move_and_slide()
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Input dan Pergerakan
3Gravitasi dan Lompatan
Jatuh karena GravitasiMelompat ke AtasHanya dari LantaiBerlari dan MelompatLompatan dengan Tinggi BerubahLompatan GandaLatihan sendiri: Playground Godot