Menu
CoddyTech

Lompatan dengan Tinggi Berubah

Termasuk bagian Input dan Pergerakan dalam perjalanan Godot di Coddy. Pelajaran 16 dari 28.

Di sebagian besar game platformer, ketukan tombol menghasilkan lompatan kecil, sedangkan tombol yang ditahan menghasilkan lompatan penuh.

Untuk melakukan ini, potong lompatan saat tombol dilepas. Input.is_action_just_released("jump") bernilai true pada satu frame saat tombol dilepas. Jika tokoh masih bergerak naik saat itu, bagi dua kecepatan gerak ke atasnya:

if Input.is_action_just_released("jump") and velocity.y < 0:
	velocity.y = velocity.y / 2

velocity.y < 0 berarti tokoh masih bergerak naik. Tanpa kondisi ini, melepas tombol saat tokoh bergerak turun akan memperlambat jatuhnya.

Tahan tombol hingga melewati titik tertinggi lompatan, maka tidak ada yang dipotong.

challenge icon

Tantangan

Sedang

Buat ketukan singkat pada tombol lompat menghasilkan lompatan kecil.

  1. Setelah if untuk lompatan, tambahkan if untuk Input.is_action_just_released("jump") dan velocity.y < 0.
  2. Di dalamnya, bagi dua velocity.y.

Tekan tombol “Main”: ketukan singkat pada Space membuat lompatan kecil, sedangkan menahannya membuat lompatan penuh. Lalu tekan tombol “Periksa”.

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
	velocity.x = Input.get_axis("move_left", "move_right") * speed
	move_and_slide()

Semua pelajaran di Input dan Pergerakan

Latihan sendiri: Playground Godot