Προσθέστε ατμόσφαιρα και μοναδικούς μηχανισμούς παιχνιδιού με την ανατολή και την πτώση ενός ήλιου.

Ένας κύκλος ημέρας-νύχτας μπορεί να προσθέσει ένα καθηλωτικό στοιχείο στα παιχνίδια σας, να προσθέσει ποικιλία στα γραφικά και να δημιουργήσει ενδιαφέρουσες μηχανικές. Παιχνίδια όπως το Minecraft, το Animal Crossing και το Don't Starve χρησιμοποιούν αυτή την τεχνική αποτελεσματικά και είναι από αυτά που μπορείτε να σκεφτείτε να προσθέσετε στα δικά σας παιχνίδια, ιδιαίτερα σε αυτά με στοιχείο σε πραγματικό χρόνο.

Ευτυχώς, στο Godot 4, η επίτευξη ενός κύκλου ημέρας-νύχτας είναι πιο εύκολη από ποτέ.

Ρύθμιση του παιχνιδιού Γκοντό

Πριν βουτήξετε στην εφαρμογή του κύκλου ημέρας-νύχτας, δημιουργήστε τα θεμέλια για το παιχνίδι σας. Ξεκινήστε δημιουργώντας ένα νέο έργο 2D στο Godot 4. Ρυθμίστε το έργο σας με τις απαραίτητες ρυθμίσεις έργου.

Ο κώδικας που χρησιμοποιείται σε αυτό το άρθρο είναι διαθέσιμος σε αυτό Αποθετήριο GitHub και είναι δωρεάν για χρήση βάσει της άδειας MIT.

Τώρα, δημιουργήστε έναν χαρακτήρα παίκτη. Στη σκηνή σας, προσθέστε ένα

instagram viewer
CharacterBody2D. Μέσα σε αυτό, προσθέστε ένα CollisionShape2D με ορθογώνιο σχήμα και α Sprite2D. Αυτό θα αναπαραστήσει οπτικά τον χαρακτήρα σας.

Για να επιτρέψετε στη συσκευή αναπαραγωγής να μετακινηθεί, μπορείτε να χρησιμοποιήσετε τον ακόλουθο κωδικό GDScript. Συνδέστε αυτό το σενάριο στον κόμβο χαρακτήρων σας:

extends CharacterBody2D

var speed = 300

func _physics_process(delta):
var input_dir = Vector2.ZERO

if Input.is_action_pressed("ui_left"):
input_dir.x -= 1

if Input.is_action_pressed("ui_right"):
input_dir.x += 1

if Input.is_action_pressed("ui_up"):
input_dir.y -= 1

if Input.is_action_pressed("ui_down"):
input_dir.y += 1

velocity = input_dir.normalized() * speed
move_and_collide(velocity * delta)

Αυτός ο κωδικός θα επιτρέψει στο πρόγραμμα αναπαραγωγής να μετακινηθεί αριστερά, δεξιά, πάνω και κάτω χρησιμοποιώντας τα πλήκτρα βέλους. Μπορείτε επίσης να προσθέστε μερικούς εχθρούς για να αποφύγει ο παίκτης σας. Χρήση StaticBody2D κόμβους για αυτούς τους εχθρούς και προσαρμόστε ανάλογα τα σχήματα και τις θέσεις τους.

Προσθέστε ένα χρονόμετρο για τον κύκλο ημέρας και νύχτας

Για να δημιουργήσετε έναν κύκλο ημέρας-νύχτας, χρειάζεστε ένα χρονόμετρο που λειτουργεί συνεχώς, εναλλάσσοντας τις φάσεις ημέρας και νύχτας. Αυτό το χρονόμετρο θα είναι υπεύθυνο για την παρακολούθηση του χρόνου στο παιχνίδι σας.

Προσθέστε έναν κόμβο χρονοδιακόπτη στη σκηνή του Godot. Μπορείτε να το κάνετε κάνοντας δεξί κλικ στον πίνακα Σκηνή, επιλέγοντας Προσθήκη κόμβου, και στη συνέχεια αναζήτηση για Μετρών την ώραν στη βιβλιοθήκη κόμβων.

Μετονομάστε τον κόμβο Timer σε κάτι με νόημα όπως DayNight Timer για λογους σαφηνειας. Διαμορφώστε τις ιδιότητες του κόμβου Timer στον πίνακα Inspector. Συγκεκριμένα, ορίστε το Χρόνος αναμονής ιδιότητα σε 0 (αυτή είναι η αρχική καθυστέρηση πριν από την έναρξη του χρονοδιακόπτη) και ελέγξτε το Μια βολή ιδιότητα έτσι ώστε το χρονόμετρο να επαναλαμβάνεται.

Τώρα, προσθέστε έναν κωδικό GDScript που διαχειρίζεται τον κύκλο ημέρας-νύχτας:

extends Node2D

var day_duration = 30# Duration of the day in seconds
var night_duration = 30# Duration of the night in seconds

var 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

Στο _έτοιμος λειτουργία, ξεκινήστε το DayNight Timer όταν η σκηνή φορτώνει για να ξεκινήσει ο κύκλος ημέρας-νύχτας. ο _on_DayNightTimer_timeout Η λειτουργία θα εκτελείται κάθε φορά που ο χρονοδιακόπτης φτάνει στο μηδέν, δηλαδή όταν είναι ώρα μετάβασης μεταξύ ημέρας και νύχτας.

Ακολουθώντας αυτά τα βήματα, θα έχετε ένα λειτουργικό χρονόμετρο ημέρας-νύχτας που μεταβαίνει μεταξύ ημέρας και νύχτας, επιτρέποντάς σας να προσθέσετε δυναμικά στοιχεία παιχνιδιού και οπτικές αλλαγές στο παιχνίδι Godot με βάση την ώρα της ημέρας.

Προσαρμογή του φόντου για μέρα και νύχτα

Για να συμπληρώσετε τον κύκλο ημέρας-νύχτας, χρειάζεστε έναν τρόπο να αναπαραστήσετε οπτικά τις μεταβάσεις μεταξύ ημέρας και νύχτας. Μπορείτε να χρησιμοποιήσετε ένα ενσωματωμένο ColorRect κόμβος για να δημιουργήσετε ένα κατάλληλο φόντο τόσο για την ημέρα όσο και για τη νύχτα. Αυτή η προσέγγιση επιτρέπει ομαλότερες μεταβάσεις και μεγαλύτερο έλεγχο των εικαστικών.

Στη σκηνή του Γκοντό, προσθέστε ένα ColorRect κόμβος. Αυτός ο κόμβος θα χρησιμεύσει ως το φόντο σας που αλλάζει χρώμα για να αντιπροσωπεύει την ημέρα και τη νύχτα. Μετονομάστε το ColorRect κόμβος σε κάτι με νόημα όπως BackgroundRect. Τοποθετήστε το ως το επίπεδο φόντου, διασφαλίζοντας ότι καλύπτει ολόκληρη τη θύρα προβολής.

Στον πίνακα επιθεωρητή, ορίστε το Χρώμα ιδιοκτησία στο αρχικό σας χρώμα φόντου, το οποίο πρέπει να αντιπροσωπεύει την ημέρα. Για παράδειγμα, μπορείτε να χρησιμοποιήσετε Χρώμα (0,5, 0,5, 0,8) για έναν γαλάζιο ουρανό της ημέρας.

Τώρα, ενημερώστε τον κώδικα GDScript για να λειτουργεί με το ColorRect κόμβος:

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

Ενημερώστε το χρώμα του BackgroundRect κόμβος για να αντικατοπτρίζει την ώρα της ημέρας. Για παράδειγμα, ρυθμίστε το σε μαύρο κατά τη μετάβαση στη νύχτα, δημιουργώντας ένα σκούρο φόντο. Κατά τη μετάβαση στην ημέρα, ρυθμίστε το σε ανοιχτό μπλε.

Ηχητικά εφέ για τον κύκλο ημέρας-νύχτας

Τα ηχητικά εφέ μπορούν να διαδραματίσουν καθοριστικό ρόλο στην ενίσχυση της εμβάπτισης και του ρεαλισμού του κύκλου ημέρας-νύχτας στον Γκοντό. Παρέχουν ακουστικές ενδείξεις στους παίκτες, κάνοντας τη μετάβαση μεταξύ ημέρας και νύχτας πιο σαγηνευτική. Μπορείτε εύκολα προσθέστε ηχητικά εφέ στο παιχνίδι Godot.

Πριν ξεκινήσετε, βεβαιωθείτε ότι έχετε πόρους ήχου (αρχεία ήχου) που αντιπροσωπεύουν ήχους ημέρας και νύχτας. Για παράδειγμα, μπορεί να έχετε ήχους κελαηδίσματος πουλιών την ημέρα και γρύλους ή κουκουβάγιες τη νύχτα.

Στη σκηνή του Γκοντό, προσθέστε δύο AudioStreamPlayer2D κόμβους και ονομάστε τους κατάλληλα. Μπορείτε να τα ονομάσετε κάπως $DaytimeSounds και $NighttimeSounds.

Τώρα, ενημερώστε τον κώδικα GDScript για να διαχειριστείτε τις μεταβάσεις ήχου μεταξύ ημέρας και νύχτας:

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

Όταν ο χρονοδιακόπτης ημέρας-νύχτας λήξει, αυτός ο κωδικός ελέγχει για να δει σε ποια φάση πρέπει να μεταβεί και αναπαράγει τους κατάλληλους ήχους για να ταιριάζει.

Μη διστάσετε να προσαρμόσετε το δικό σας ηχητικά εφέ χωρίς πνευματικά δικαιώματα να ταιριάζει με το θέμα και την ατμόσφαιρα του παιχνιδιού σας. Μπορείτε επίσης να στρώσετε πολλά κομμάτια ήχου ή να χρησιμοποιήσετε ηχητικά εφέ (αντήχηση, ηχώ κ.λπ.) για να δημιουργήσετε μια πιο πλούσια ακουστική εμπειρία.

Κάντε τα παιχνίδια Godot σας πιο ελκυστικά με έναν κύκλο ημέρας-νύχτας

Η εφαρμογή ενός κύκλου ημέρας-νύχτας στο παιχνίδι Godot μπορεί να βελτιώσει σημαντικά τη βύθιση και την αφοσίωση του παίκτη. Προσθέτει βάθος στον κόσμο του παιχνιδιού σας, εισάγει δυναμικά στοιχεία παιχνιδιού και επιτρέπει τη δημιουργική αφήγηση.

Θυμηθείτε να προσαρμόσετε τον κύκλο ημέρας-νύχτας στο μοναδικό θέμα και τους μηχανισμούς του παιχνιδιού σας και μην διστάσετε να πειραματιστείτε με διαφορετικά οπτικά εφέ και εφέ παιχνιδιού για να δημιουργήσετε ένα πραγματικά συναρπαστικό παιχνίδι εμπειρία.