Menu
CoddyTech

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 -= 1

Lompatan 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.

challenge icon

Tantangan

Sedang

Buat 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()
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Input dan Pergerakan

Latihan sendiri: Playground Godot