Dodaj atmosferę i unikalną mechanikę rozgrywki wraz ze wschodem i zachodem słońca.
Cykl dnia i nocy może dodać element immersyjny do twoich gier, urozmaicić grafikę i stworzyć interesującą mechanikę. Gry takie jak Minecraft, Animal Crossing i Don’t Starve skutecznie wykorzystują tę technikę i warto rozważyć dodanie jej do własnych gier, zwłaszcza tych z elementem czasu rzeczywistego.
Na szczęście w Godot 4 osiągnięcie cyklu dnia i nocy jest łatwiejsze niż kiedykolwiek.
Konfigurowanie gry Godot
Zanim zagłębisz się w implementację cyklu dnia i nocy, przygotuj podstawy swojej gry. Zacznij od stworzenia nowego projektu 2D w Godot 4. Skonfiguruj swój projekt, wprowadzając niezbędne ustawienia projektu.
Kod użyty w tym artykule jest dostępny w this Repozytorium GitHuba i jest darmowy do użytku na licencji MIT.
Teraz utwórz postać gracza. W swojej scenie dodaj a PostaćCiało2D. Wewnątrz niego dodaj a Kształt kolizji2D o kształcie prostokąta i a Sprite2D. Będzie to wizualnie reprezentować twoją postać.
Aby umożliwić graczowi poruszanie się, możesz użyć następującego kodu GDScript. Dołącz ten skrypt do węzła postaci:
extends CharacterBody2D
var speed = 300
func _physics_process(delta):
var input_dir = Vector2.ZEROif Input.is_action_pressed("ui_left"):
input_dir.x -= 1if Input.is_action_pressed("ui_right"):
input_dir.x += 1if Input.is_action_pressed("ui_up"):
input_dir.y -= 1if Input.is_action_pressed("ui_down"):
input_dir.y += 1
velocity = input_dir.normalized() * speed
move_and_collide(velocity * delta)
Ten kod pozwoli graczowi poruszać się w lewo, w prawo, w górę i w dół za pomocą klawiszy strzałek. Możesz również dodaj kilku wrogów aby Twój gracz mógł wykonać unik. Używać StatyczneBody2D węzły dla tych wrogów i odpowiednio dostosuj ich kształty i położenie.
Dodaj timer dla cyklu dnia i nocy
Aby utworzyć cykl dnia i nocy, potrzebny jest timer, który działa w sposób ciągły, naprzemiennie pomiędzy fazami dnia i nocy. Ten licznik czasu będzie odpowiedzialny za śledzenie upływu czasu w Twojej grze.
Dodaj węzeł Timer do swojej sceny Godot. Można to zrobić, klikając prawym przyciskiem myszy panel Scena i wybierając Dodaj węzeł, a następnie wyszukaj Regulator czasowy w bibliotece węzłów.
Zmień nazwę węzła Timer na jakąś znaczącą, np Zegar DzieńNoc dla jasności. Skonfiguruj właściwości węzła Timer w panelu Inspektor. Konkretnie ustaw Czas oczekiwania na 0 (jest to początkowe opóźnienie przed uruchomieniem timera) i sprawdź Jeden strzał właściwość, aby licznik czasu się powtarzał.
Teraz dodaj kod GDScript zarządzający cyklem dnia i nocy:
extends Node2D
var day_duration = 30# Duration of the day in seconds
var night_duration = 30# Duration of the night in secondsvar is_day = true
func _ready():
# Start the timer when the scene loads
$DayNightTimer.start()func _on_DayNightTimer_timeout():
if is_day:
# Transition from day to night
$DayNightTimer.start(day_duration)
is_day = false# Add your code here for night-specific actions or visual changes
else:
# Transition from night to day
$DayNightTimer.start(night_duration)
is_day = true
# Add your code here for day-specific actions or visual changes
w _gotowy funkcję, uruchom Zegar DzieńNoc kiedy scena się ładuje, aby rozpocząć cykl dnia i nocy. The _on_DayNightTimer_timeout funkcja będzie uruchamiana za każdym razem, gdy licznik czasu osiągnie zero, czyli wtedy, gdy nadejdzie czas przejścia między dniem i nocą.
Wykonując poniższe kroki, będziesz mieć funkcjonalny timer dzień-noc, który przełącza się między dniem i nocą, umożliwiając dodawanie dynamicznych elementów rozgrywki i zmian wizualnych do gry Godot w zależności od pory dnia.
Dopasowanie tła do dnia i nocy
Aby uzupełnić cykl dnia i nocy, potrzebujesz sposobu, aby wizualnie przedstawić przejścia między dniem i nocą. Możesz użyć wbudowanego KolorProst węzeł, aby stworzyć odpowiednie tło zarówno w dzień, jak i w nocy. Takie podejście pozwala na płynniejsze przejścia i większą kontrolę nad efektami wizualnymi.
W scenie Godota dodaj a KolorProst węzeł. Ten węzeł będzie służyć jako tło, które zmienia kolor, aby reprezentować dzień i noc. Zmień nazwę KolorProst węzeł do czegoś znaczącego, np TłoRect. Ustaw ją jako warstwę tła, upewniając się, że zakrywa całą rzutnię.
W panelu Inspektor ustaw opcję Kolor na początkowy kolor tła, który powinien reprezentować dzień. Możesz na przykład użyć Kolor (0,5, 0,5, 0,8) dla jasnoniebieskiego nieba w ciągu dnia.
Teraz zaktualizuj swój kod GDScript, aby działał z KolorProst węzeł:
func _on_day_night_timer_timeout():
if is_day:
# Transition from day to night
$DayNightTimer.start(day_duration)
is_day = false# Add your code here for night-specific actions or visual changes
# Update the background color to indicate day
$BackgroundRect.color = Color(0.5, 0.5, 0.8) # Light blue for day
else:
# Transition from night to day
$DayNightTimer.start(night_duration)
is_day = true# Add your code here for day-specific actions or visual changes
# Update the background color to indicate night
$BackgroundRect.color = Color(0, 0, 0) # Black for night
Zaktualizuj kolor TłoRect węzeł odzwierciedlający porę dnia. Na przykład ustaw kolor czarny podczas przechodzenia w noc, tworząc ciemne tło. Przechodząc do dnia, ustaw go na jasnoniebieski.
Efekty dźwiękowe dla cyklu dnia i nocy
Efekty dźwiękowe mogą odegrać kluczową rolę w zwiększeniu zanurzenia i realizmu cyklu dnia i nocy w Godot. Dostarczają graczom wskazówek dźwiękowych, dzięki czemu przejście między dniem i nocą jest bardziej wciągające. Możesz z łatwością dodaj efekty dźwiękowe do swojej gry Godot.
Zanim zaczniesz, upewnij się, że masz zasoby audio (pliki dźwiękowe) reprezentujące dźwięki dzienne i nocne. Na przykład w ciągu dnia możesz słuchać śpiewu ptaków, a w nocy świerszczy lub pohukiwań sów.
W scenie Godota dodaj dwa AudioStreamPlayer2D węzły i odpowiednio je nazwij. Możesz je jakoś nazwać $Dźwięki dzienne I $Nocne dźwięki.
Teraz zaktualizuj kod GDScript, aby zarządzać przejściami dźwiękowymi między dniem i nocą:
func _on_day_night_timer_timeout():
if is_day:
# Transition from day to night
$DayNightTimer.start(day_duration)
is_day = false
# Play daytime sounds
$NighttimeSounds.stop() # Stop nighttime sounds
$DaytimeSounds.play() # Start daytime sounds
else:
# Transition from night to day
$DayNightTimer.start(night_duration)
is_day = true
# Play nighttime sounds
$DaytimeSounds.stop() # Stop daytime sounds
$NighttimeSounds.play() # Start nighttime sounds
Kiedy upłynie czas timera dzień-noc, ten kod sprawdza, do której fazy powinien przejść i odtwarza odpowiednie dźwięki.
Zachęcamy do dostosowania swojego efekty dźwiękowe wolne od praw autorskich aby pasowały do tematu i atmosfery Twojej gry. Można także nakładać na siebie wiele ścieżek audio lub używać efektów dźwiękowych (pogłos, echo itp.), aby uzyskać bogatsze wrażenia słuchowe.
Spraw, aby Twoje gry Godot były bardziej wciągające dzięki cyklowi dnia i nocy
Wdrożenie cyklu dnia i nocy w grze Godot może znacznie zwiększyć immersję i zaangażowanie gracza. Dodaje głębi światu gry, wprowadza dynamiczne elementy rozgrywki i pozwala na kreatywne opowiadanie historii.
Pamiętaj, aby dostosować cykl dnia i nocy do unikalnego tematu i mechaniki swojej gry, i nie wahaj się eksperymentować z różnymi efektami wizualnymi i rozgrywką, aby stworzyć naprawdę wciągającą grę doświadczenie.