Pelajari cara menampilkan tombol khusus dalam adegan terpisah untuk bertindak sebagai menu layar sederhana untuk game Anda.

Takeaway kunci

  • Menu khusus di Godot dapat meningkatkan interaksi dan pengalaman pengguna dengan menyediakan navigasi yang mudah dan akses cepat ke fitur game.
  • Godot menyediakan perangkat canggih untuk membuat menu UI kustom menggunakan node kontrol di mesin game.
  • Anda dapat membuat menu seperti menu mulai, menu jeda, dan layar game over di Godot dengan menambahkan node yang sesuai dan mengimplementasikan fungsinya menggunakan GDScript.

Menu khusus dapat sangat meningkatkan interaksi dan pengalaman pengguna game Godot Anda. Dengan membuat menu yang intuitif dan menarik secara visual, Anda dapat memberi pemain navigasi yang mudah dan akses cepat ke berbagai fitur game.

Untungnya, Godot menyediakan perangkat canggih untuk membuat menu UI khusus menggunakan node kontrol.

Menyiapkan Game Godot

Untuk memulai, buat adegan game 2D di mesin permainan Godot. Tambah sebuah KinematikaBody2D

instagram viewer
simpul untuk karakter pemain dan lampirkan a TabrakanBentuk2D node untuk itu, tentukan bentuk persegi panjang yang mewakili area tabrakan pemain.

Kode yang digunakan dalam artikel ini tersedia di sini repositori GitHub dan gratis untuk Anda gunakan di bawah lisensi MIT.

Selain itu, sertakan a Sprite2D node untuk menampilkan karakter pemain secara visual. Di bawah ini adalah cuplikan kode GDScript untuk mengaktifkan pergerakan pemain:

memperluas KinematicBody2D

KECEPATAN konstan = 200
const GRAVITASI = 500
var kecepatan = Vector2.ZERO

func _fisika_proses (delta):
var langkah_arah = 0

jika Input.is_action_pressed("ui_benar"):
pindah_arah += 1

jika Input.is_action_pressed("ui_kiri"):
pindah_arah -= 1

kecepatan.x = arah_gerak * KECEPATAN
kecepatan.y += GRAVITASI * delta
kecepatan = gerak_dan_geser (kecepatan, Vector2.UP)

Dalam kode ini, tentukan sebuah konstanta KECEPATAN untuk mengontrol kecepatan gerakan pemain. Perbarui variabel kecepatan sebagai respons terhadap input pengguna, dan panggil pindahkan_dan_geser() untuk memindahkan pemain sambil memperhitungkan tabrakan dan gravitasi permainan.

Buat Menu Mulai

Untuk membuat menu start di Godot, tambahkan node Control sebagai root dari scene. Tambahkan simpul Label sebagai anak dari simpul Kontrol ini dan setel teksnya ke Permainan Sederhana. Anda dapat menyesuaikan font, ukuran, dan warna label agar sesuai dengan gaya permainan Anda.

Setelah itu, tambahkan simpul Tombol sebagai anak dari simpul Kontrol. Setel teks tombol ke Mainkan Game. Tulis kode kustom untuk Mainkan Game tombol untuk menangani fungsinya:

memperluas Kontrol

func _ready():
var playButton = $Tombol
playButton.sambungkan("ditekan", diri sendiri, "_on_PlayButton_press")

func _on_PlayButton_pressed():
# Muat adegan permainan
var gameScene = pramuat("res://GameScene.tscn")

# Transisi ke adegan permainan
get_tree().change_scene (gameScene)

Kode ini menghubungkan ditekan sinyal dari playButton ke _on_PlayButton_ditekan fungsi. Fungsi itu memuat adegan permainan menggunakan pramuat() dan membuat sebuah instance dari itu. Ini kemudian menggunakan ubah_adegan() untuk beralih ke adegan permainan.

Demikian pula, Anda dapat menambahkan KELUAR tombol yang dapat digunakan pemain untuk keluar dari game:

func _ready():
var playButton = $Tombol
var exitButton = $Button2
playButton.sambungkan("ditekan", diri sendiri, "_on_PlayButton_press")
exitButton.sambungkan("ditekan", diri sendiri, "_on_ExitButton_press")

func _on_ExitButton_pressed():
# Keluar dari permainan
get_tree().keluar()

Kode ini menghubungkan ditekan sinyal tombol keluar ke _on_ExitButton_press fungsi. Fungsi itu memanggil berhenti() untuk keluar dari permainan.

Buat Menu Jeda

Untuk menambahkan menu jeda ke game Godot Anda, buat adegan baru dengan simpul Kontrol sebagai root dari menu jeda. Rancang elemen visual menu, termasuk label untuk Dijeda dan tombol untuk melanjutkan permainan, kembali ke menu utama, dan keluar dari permainan.

Tambahkan adegan sebagai node anak dari game utama. Dalam skrip yang dilampirkan ke simpul Kontrol, tambahkan kode berikut:

memperluas Kontrol

func _ready():
$btnResume.sambungkan("ditekan", diri sendiri, "_on_resume_button_press")
$btnHome.connect("ditekan", diri sendiri, "_on_menu_button_press")
$btnExit.connect("ditekan", diri sendiri, "_saat_keluar_tombol_tekan")
pause_mode = Simpul. PAUSE_MODE_PROCESS
get_tree().paus = salah
diri.sembunyikan()

func _input (acara):
jika acara.is_action_pressed("ui_batalkan"):
jikabukan self.is_visible_in_tree():
# Jeda permainan saat menu jeda tidak terlihat
self.show()
get_tree().paus = benar
kalau tidak:
# Batalkan jeda permainan saat menu jeda sudah terlihat
diri.sembunyikan()
get_tree().paus = salah

func _on_resume_button_pressed():
# Sembunyikan menu jeda dan lanjutkan permainan
diri.sembunyikan()
get_tree().paus = salah

func _on_menu_button_pressed():
# Kembali ke menu utama
get_tree().change_scene("res://StartMenu.tscn")

func _on_exit_button_pressed():
# Keluar dari permainan
get_tree().keluar()

Dalam _siap() fungsi, menghubungkan ditekan sinyal tombol resume, home, dan exit ke fungsinya masing-masing: _on_resume_button_pressed(), _on_menu_button_press(), Dan _on_exit_button_pressed().

Mengatur pause_mode dari node ke Node. PAUSE_MODE_PROCESS. Ini memungkinkan game untuk terus berjalan saat menu jeda terlihat. Secara default, sembunyikan menu jeda menggunakan diri.sembunyikan() dan atur get_tree().dijeda ke PALSU untuk memastikan game tidak dijeda pada awalnya.

Berikutnya, menggunakan pernyataan if dalam _masukan (peristiwa) berfungsi untuk memeriksa apakah ui_cancel tindakan ditekan. Jika menu jeda tidak terlihat saat ini, Anda dapat menjeda game dengan menampilkan menu dan pengaturan jeda get_tree().dijeda ke BENAR.

Buat Layar Game Over

Untuk menerapkan layar game over di Godot, buat adegan terpisah bernama GameOver.tscn untuk menentukan elemen dan fungsionalitas UI-nya. Anda dapat menambahkan adegan ini sebagai simpul anak saat pemain melintasi batas layar, yang menunjukkan akhir permainan.

Buka adegan baru di Godot dan tambahkan simpul Kontrol sebagai akar dari adegan. Di dalam simpul Kontrol, tambahkan simpul Label untuk menampilkan Permainan telah berakhir teks. Kustomisasi font, ukuran, dan warna label sesuai dengan gaya visual game Anda.

Selanjutnya, tambahkan Node tombol untuk Main lagi Dan KELUAR pilihan. Posisikan mereka dengan tepat di layar.

Hubungkan sinyal tombol ke fungsinya masing-masing untuk menangani tindakan saat diklik. Misalnya, hubungkan Main lagi tombol ke fungsi yang dipanggil onPlayAgainDitekan dan KELUAR tombol ke fungsi yang dipanggil onExitPressed.

Untuk menangani fungsionalitas tombol, Anda perlu menentukan fungsi yang sesuai dalam kode GDScript dari adegan game over. Berikut contohnya:

memperluas Kontrol

func _ready():
$Button.sambungkan("ditekan", diri sendiri, "onPlayAgainDitekan")
$Button2.sambungkan("ditekan", diri sendiri, "onExitPressed")

func onPlayAgainPressed():
var gameScenePath = "res://GameScene.tscn"
get_tree().change_scene (gameScenePath)

func onExitPressed():
get_tree().keluar() # Tutup aplikasi game

Setelah Anda mengatur GameOver.tscn adegan dan menentukan fungsionalitas tombol yang diperlukan, Anda dapat menggunakan kode berikut di adegan game utama untuk menampilkan layar game over:

memperluas KinematicBody2D

func _fisika_proses (delta):
# Periksa apakah pemain telah melewati batas layar
var screen_size = get_viewport_rect().size
jika kecepatan.y > ukuran_layar.y atau kecepatan.y < 0:
show_game_over_screen()

fungsi show_game_over_screen():
get_tree().change_scene("res://GameOver.tscn")

Layar Game Over akan terlihat seperti ini, dengan tombol untuk pemain memulai ulang atau keluar:

Termasuk Fitur Tambahan

Saat membuat menu UI kustom di Godot menggunakan node kontrol, Anda memiliki fleksibilitas untuk menambahkan berbagai fitur untuk meningkatkan fungsionalitas dan daya tarik visual menu Anda. Berikut adalah beberapa ide untuk dipertimbangkan.

Transisi Animasi

Tambahkan transisi halus antara layar menu yang berbeda, seperti fade-in, slide-in, atau efek penskalaan. Anda dapat mencapainya dengan memodifikasi properti node kontrol dari waktu ke waktu menggunakan pemain remaja atau animasi.

Efek suara

Terapkan efek suara untuk memberikan umpan balik audio saat pemutar menekan tombol menu. Anda dapat memutar suara yang berbeda untuk klik tombol, transisi menu, atau interaksi lainnya untuk membuat menu terasa lebih responsif dan menarik.

Sistem audio bawaan Godot memudahkan pemutaran suara pada waktu yang tepat.

Efek visual

Gunakan shader atau sistem partikel untuk menambahkan efek visual ke menu Anda. Misalnya, Anda dapat menerapkan efek cahaya halus ke tombol yang dipilih atau membuat efek partikel yang terpicu saat tindakan menu tertentu terjadi. Efek ini dapat menambahkan nuansa halus dan imersif ke UI Anda.

Latarbelakang musik

Pertimbangkan untuk bermain musik latar bebas hak cipta khusus untuk setiap layar menu untuk menciptakan suasana yang lebih imersif. Anda dapat menggunakan aliran audio atau bus audio di Godot untuk mengelola musik latar dan memastikan transisi yang mulus di antara trek yang berbeda saat pemutar menelusuri menu.

Dukungan Lokalisasi

Jika Anda berencana menerjemahkan game ke dalam beberapa bahasa, pertimbangkan untuk menambahkan dukungan pelokalan ke menu UI Anda.

Menyediakan mekanisme untuk mengubah konten teks label dan tombol secara dinamis berdasarkan bahasa yang dipilih. Alat dan sumber daya pelokalan Godot dapat membantu mengelola elemen UI multibahasa.

Ingatlah untuk menguji dan mengulangi menu Anda dengan pengguna nyata untuk memastikan bahwa fitur tambahan meningkatkan pengalaman pengguna secara keseluruhan dan intuitif untuk dinavigasi. Perhatikan pertimbangan kinerja, terutama saat menggunakan animasi dan efek visual, untuk memastikan interaksi UI yang mulus dan responsif.

Membuat Game Godot Lebih Menarik Dengan Menu Custom UI

Menu UI khusus dapat memainkan peran penting dalam keterlibatan pemain. Mereka menyediakan navigasi yang intuitif, memungkinkan akses mudah ke fitur game, dan meningkatkan daya tarik visual game Anda secara keseluruhan.

Dengan sedikit kreativitas dan beberapa pengkodean, Anda dapat merancang menu yang tidak hanya menyediakan fungsionalitas penting tetapi juga memikat pemain dan meningkatkan pengalaman bermain mereka secara keseluruhan. Jadi, mulailah menjelajahi dan membuat menu unik Anda sendiri untuk membuat game Godot Anda menonjol dari yang lain.