Πώς να εφαρμόσετε έναν κύκλο ημέρας-νύχτας στο Godot

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

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

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

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

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

Τώρα, δημιουργήστε έναν χαρακτήρα παίκτη. Στη σκηνή σας, προσθέστε ένα 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 για αυτούς τους εχθρούς και προσαρμόστε ανάλογα τα σχήματα και τις θέσεις τους.

  11 Καλύτερο λογισμικό πληκτρολόγησης για βελτίωση της ταχύτητας και της ακρίβειας [2023]

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

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

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

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

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

 extends Node2D

var day_duration = 30
var night_duration = 30

var is_day = true

func _ready():
    
    $DayNightTimer.start()

func _on_DayNightTimer_timeout():
    if is_day:
        
        $DayNightTimer.start(day_duration)
        is_day = false

        
    else:
        
        $DayNightTimer.start(night_duration)
        is_day = true

        

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

  7 καλύτερα Open Banking API για τη δημιουργία χρηματοοικονομικού προϊόντος

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

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

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

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

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

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

 func _on_day_night_timer_timeout():
    if is_day:
        
        $DayNightTimer.start(day_duration)
        is_day = false

        

        
        $BackgroundRect.color = Color(0.5, 0.5, 0.8)
    else:
        
        $DayNightTimer.start(night_duration)
        is_day = true

        

        
        $BackgroundRect.color = Color(0, 0, 0)

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

  Οι χάκερ πολεμούν πραγματικά σε πραγματικό χρόνο;

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

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

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

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

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

 func _on_day_night_timer_timeout():
    if is_day:
        
        $DayNightTimer.start(day_duration)
        is_day = false
     
        
        $NighttimeSounds.stop()
        $DaytimeSounds.play()
         
    else:
        
        $DayNightTimer.start(night_duration)
        is_day = true

        
        $DaytimeSounds.stop()
        $NighttimeSounds.play()

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

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

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

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

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