Dowiedz się, jak wyświetlać niestandardowe przyciski w oddzielnych scenach, aby działały jak proste menu ekranowe dla twoich gier.

Kluczowe dania na wynos

  • Niestandardowe menu w Godot mogą poprawić zaangażowanie i wygodę użytkownika, zapewniając łatwą nawigację i szybki dostęp do funkcji gry.
  • Godot zapewnia potężny zestaw narzędzi do tworzenia niestandardowych menu interfejsu użytkownika za pomocą węzłów kontrolnych w silniku gry.
  • Możesz tworzyć menu, takie jak menu startowe, menu pauzy i ekrany gry w Godot, dodając odpowiednie węzły i implementując ich funkcjonalność za pomocą GDScript.

Niestandardowe menu mogą znacznie zwiększyć zaangażowanie i wrażenia użytkownika z gry Godot. Tworząc intuicyjne i atrakcyjne wizualnie menu, możesz zapewnić graczom łatwą nawigację i szybki dostęp do różnych funkcji gry.

Na szczęście Godot zapewnia potężny zestaw narzędzi do tworzenia niestandardowych menu interfejsu użytkownika za pomocą węzłów sterujących.

Przygotowanie gry Godot

Aby rozpocząć, utwórz scenę gry 2D w

instagram viewer
silnik gry Godota. Dodać KinematicBody2D node dla postaci gracza i dołącz a KolizjaKształt2D do niego węzeł, zdefiniuj kształt prostokąta, który reprezentuje obszar kolizji gracza.

Kod użyty w tym artykule jest dostępny w this Repozytorium GitHub i jest darmowy do użytku na licencji MIT.

Dodatkowo zawrzyj a Sprite2D node, aby wizualnie wyświetlić postać gracza. Poniżej znajduje się fragment kodu GDScript umożliwiający poruszanie się gracza:

rozszerza KinematicBody2D

stała PRĘDKOŚĆ = 200
stała GRAWITACJA = 500
var prędkość = Wektor2.ZERO

func _physics_process (delta):
var kierunek_przeniesienia = 0

Jeśli Input.is_action_pressed("ui_right"):
kierunek_przesunięcia += 1

Jeśli Input.is_action_pressed("ui_lewo"):
kierunek_przesunięcia -= 1

prędkość.x = kierunek_ruchu * PRĘDKOŚĆ
prędkość.y += GRAWITACJA * delta
prędkość = ruch_i_poślizg (prędkość, Vector2.UP)

W tym kodzie zdefiniuj stałą PRĘDKOŚĆ kontrolować prędkość ruchu gracza. Zaktualizuj zmienną prędkości w odpowiedzi na dane wejściowe użytkownika i zadzwoń move_and_slide() przesunąć gracza, biorąc pod uwagę kolizje i grawitację gry.

Utwórz menu Start

Aby utworzyć menu startowe w Godot, dodaj węzeł kontrolny jako główny element sceny. Dodaj węzeł Label jako element podrzędny tego węzła Control i ustaw jego tekst na Prosta gra. Możesz dostosować czcionkę, rozmiar i kolor etykiety, aby dopasować ją do stylu swojej gry.

Następnie dodaj węzeł Button jako element podrzędny węzła Control. Ustaw tekst przycisku na Grać w grę. Napisz niestandardowy kod dla Grać w grę przycisk do obsługi jego funkcjonalności:

rozszerza kontrolę

funkcja _gotowa():
var playButton = $Przycisk
playButton.connect("prasowany", samego siebie, „_on_PlayButton_pressed”)

func _on_PlayButton_pressed():
# Załaduj scenę gry
var gameScene = wstępne ładowanie ("res://GameScene.tscn")

# Przejście do sceny gry
get_tree().change_scene (gameScene)

Ten kod łączy prasowany sygnał z przycisk odtwarzania do _on_PlayButton_wciśnięty funkcjonować. Ta funkcja ładuje scenę gry za pomocą ładowanie wstępne() i tworzy jego instancję. Następnie używa zmiana_sceny() aby przejść do sceny gry.

Podobnie możesz dodać Wyjście przycisk, za pomocą którego gracze mogą wyjść z gry:

funkcja _gotowa():
var playButton = $Przycisk
var przycisk wyjścia = $Przycisk2
playButton.connect("prasowany", samego siebie, „_on_PlayButton_pressed”)
przycisk wyjścia.połącz("prasowany", samego siebie, "_on_ExitButton_pressed")

func _on_ExitButton_pressed():
# Wyjdź z gry
get_tree().quit()

Ten kod łączy prasowany sygnał przycisku wyjścia do _on_ExitButton_pressed funkcjonować. Ta funkcja wywołuje zrezygnować() aby wyjść z gry.

Utwórz menu pauzy

Aby dodać menu pauzy do gry Godot, utwórz nową scenę z węzłem kontrolnym jako głównym menu pauzy. Zaprojektuj elementy wizualne menu, w tym etykietę dla Wstrzymane i aby wznowić grę, powrócić do menu głównego i wyjść z gry.

Dodaj scenę jako węzeł potomny głównej gry. W skrypcie dołączonym do węzła Control dodaj następujący kod:

rozszerza kontrolę

funkcja _gotowa():
$btnWznów.connect("prasowany", samego siebie, „_on_resume_button_pressed”)
$btnHome.connect("prasowany", samego siebie, "_on_menu_button_pressed")
$btnExit.connect("prasowany", samego siebie, "_on_exit_button_pressed")
tryb_przerwy = węzeł. PAUSE_MODE_PROCESS
get_tree().paused = fałsz
siebie.ukryj()

func_input (zdarzenie):
Jeśli event.is_action_pressed("ui_anuluj"):
Jeślinie self.is_visible_in_tree():
# Zatrzymaj grę, gdy menu pauzy nie jest widoczne
auto.pokaż()
get_tree().paused = prawda
w przeciwnym razie:
# Wznów grę, gdy menu pauzy jest już widoczne
siebie.ukryj()
get_tree().paused = fałsz

funkcja _on_resume_button_pressed():
# Ukryj menu pauzy i wznów grę
siebie.ukryj()
get_tree().paused = fałsz

funkcja _on_menu_button_pressed():
# Powrót do menu głównego
get_tree().change_scene("res://StartMenu.tscn")

funkcja _on_exit_button_pressed():
# Wyjdź z gry
get_tree().quit()

w _gotowy() funkcję, podłącz prasowany sygnał przycisków wznowienia, domu i wyjścia do ich odpowiednich funkcji: _on_resume_button_pressed(), _on_menu_button_pressed(), I _on_exit_button_pressed().

Ustaw tryb_pauzy węzła do Węzeł. PAUSE_MODE_PROCESS. Pozwala to na kontynuowanie gry, gdy widoczne jest menu pauzy. Domyślnie ukryj menu pauzy za pomocą siebie.ukryj() i nastaw get_tree().pauza Do FAŁSZ aby upewnić się, że gra nie zostanie wstrzymana na początku.

Następny, użyj instrukcji if w _wejście (zdarzenie) funkcję sprawdzającą, czy ui_anuluj akcja jest wciśnięta. Jeśli menu pauzy nie jest aktualnie widoczne, możesz wstrzymać grę, pokazując menu pauzy i ustawienia get_tree().pauza Do PRAWDA.

Utwórz ekran końca gry

Aby zaimplementować ekran zakończenia gry w Godot, utwórz oddzielną scenę o nazwie GameOver.tscn w celu zdefiniowania elementów i funkcjonalności interfejsu użytkownika. Możesz dodać tę scenę jako węzeł potomny, gdy gracz przekroczy granice ekranu, wskazując koniec gry.

Otwórz nową scenę w Godot i dodaj węzeł kontrolny jako główny element sceny. Wewnątrz węzła Kontrola dodaj węzeł Etykieta, aby wyświetlić Koniec gry tekst. Dostosuj czcionkę, rozmiar i kolor etykiety zgodnie ze stylem wizualnym swojej gry.

Następnie dodaj węzły Button dla Zagraj ponownie I Wyjście opcje. Ustaw je odpowiednio na ekranie.

Połącz sygnały przycisków z ich odpowiednimi funkcjami, aby obsłużyć działania po kliknięciu. Na przykład podłącz Zagraj ponownie przycisk do wywołanej funkcji onPlayAgainWciśnięty i Wyjście przycisk do wywołanej funkcji onExitWciśnięty.

Aby obsłużyć funkcjonalność przycisku, musisz zdefiniować odpowiednie funkcje w kodzie GDScript sceny game over. Oto przykład:

rozszerza kontrolę

funkcja _gotowa():
$Button.połącz("prasowany", samego siebie, „onPlayAgainWciśnięty”)
$Przycisk2.połącz("prasowany", samego siebie, „wciśnięto przy wyjściu”)

func onPlayAgainPressed():
var gameScenePath = "res://GameScene.tscn"
get_tree().change_scene (ścieżka do sceny gry)

func onExitPressed():
get_tree().quit() # Zamknij aplikację gry

Po skonfigurowaniu GameOver.tscn scene i zdefiniowałeś niezbędne funkcje przycisków, możesz użyć następującego kodu w głównej scenie gry, aby wyświetlić ekran końca gry:

rozszerza KinematicBody2D

func _physics_process (delta):
# Sprawdź, czy gracz przekroczył granice ekranu
var rozmiar_ekranu = get_viewport_rect().rozmiar
Jeśli prędkość.y > rozmiar_ekranu.y Lub prędkość.y < 0:
show_game_over_screen()

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

Ekran Game Over będzie wyglądał mniej więcej tak, z przyciskami umożliwiającymi graczowi ponowne uruchomienie lub wyjście:

W tym dodatkowe funkcje

Podczas tworzenia niestandardowych menu interfejsu użytkownika w Godot za pomocą węzłów sterujących możesz elastycznie dodawać różne funkcje w celu zwiększenia funkcjonalności i atrakcyjności wizualnej swoich menu. Oto kilka pomysłów do rozważenia.

Animowane przejścia

Dodaj płynne przejścia między różnymi ekranami menu, takie jak zanikanie, wsuwanie lub efekty skalowania. Można to osiągnąć, modyfikując właściwości węzłów sterujących w czasie za pomocą animacji lub odtwarzaczy animacji.

Efekty dźwiękowe

Zaimplementuj efekty dźwiękowe, aby zapewnić dźwiękową informację zwrotną, gdy gracz naciska przyciski menu. Możesz odtwarzać różne dźwięki dla kliknięć przycisków, przejść menu lub innych interakcji, aby menu były bardziej responsywne i wciągające.

Wbudowany system audio Godota ułatwia odtwarzanie dźwięków w odpowiednich momentach.

Efekty wizualne

Użyj shaderów lub systemów cząstek, aby dodać efekty wizualne do swoich menu. Na przykład możesz zastosować subtelny efekt blasku do wybranych przycisków lub stworzyć efekty cząsteczkowe, które uruchamiają się, gdy wystąpią określone czynności w menu. Efekty te mogą nadać Twojemu interfejsowi dopracowany i wciągający charakter.

Muzyka w tle

Rozważ grę muzyka w tle bez praw autorskich specyficzne dla każdego ekranu menu, aby stworzyć bardziej wciągającą atmosferę. Możesz użyć strumieni audio lub magistrali audio w Godot do zarządzania muzyką w tle i zapewnienia płynnych przejść między różnymi ścieżkami, gdy gracz porusza się po menu.

Wsparcie lokalizacji

Jeśli planujesz przetłumaczyć swoją grę na wiele języków, rozważ dodanie obsługi lokalizacji do menu interfejsu użytkownika.

Udostępnij mechanizm dynamicznej zmiany treści etykiet i przycisków w oparciu o wybrany język. Narzędzia i zasoby lokalizacyjne Godota mogą pomóc w zarządzaniu wielojęzycznymi elementami interfejsu użytkownika.

Pamiętaj, aby testować i powtarzać swoje menu z prawdziwymi użytkownikami, aby upewnić się, że dodatkowe funkcje poprawiają ogólne wrażenia użytkownika i są intuicyjne w nawigacji. Zwróć uwagę na kwestie związane z wydajnością, zwłaszcza podczas korzystania z animacji i efektów wizualnych, aby zapewnić płynne i responsywne interakcje interfejsu użytkownika.

Uatrakcyjnianie gier Godot dzięki niestandardowemu menu interfejsu użytkownika

Niestandardowe menu interfejsu użytkownika mogą odgrywać kluczową rolę w zaangażowaniu graczy. Zapewniają intuicyjną nawigację, łatwy dostęp do funkcji gry i poprawiają ogólną atrakcyjność wizualną gry.

Przy odrobinie kreatywności i kodowania możesz zaprojektować menu, które nie tylko zapewniają niezbędną funkcjonalność, ale także urzekają graczy i poprawiają ich ogólne wrażenia z gry. Zacznij więc odkrywać i tworzyć własne, unikalne menu, aby Twoje gry Godot wyróżniały się z tłumu.