Αυτή η βιβλιοθήκη παιχνιδιών Python είναι γεμάτη λειτουργίες, συμπεριλαμβανομένων μερικών απλών εργαλείων που μπορείτε να χρησιμοποιήσετε για να δημιουργήσετε ομαλή, παράλλαξη κύλιση.
Η κύλιση φόντου μπορεί να βελτιώσει σημαντικά την οπτική έλξη και το βάθος ενός παιχνιδιού. Μπορούν να δημιουργήσουν την ψευδαίσθηση της κίνησης, δίνοντας στο παιχνίδι μια δυναμική και καθηλωτική αίσθηση. Μπορείτε να εφαρμόσετε κύλιση φόντου με λίγα απλά βήματα χρησιμοποιώντας το Pygame.
Το Pygame είναι μια δημοφιλής βιβλιοθήκη Python που μπορείτε να χρησιμοποιήσετε για την ανάπτυξη παιχνιδιών. Η προσθήκη φόντου κύλισης στα έργα σας στο Pygame θα τα ζωντανέψει και θα προσφέρει μια πιο ελκυστική εμπειρία για τους παίκτες.
Δημιουργήστε ένα απλό παιχνίδι
Για να κατανοήσετε την έννοια της κύλισης φόντου στο Pygame, ξεκινήστε δημιουργώντας ένα απλό παιχνίδι όπου ο παίκτης μπορεί να κινηθεί αριστερά και δεξιά. Μπορείτε επίσης να συμπεριλάβετε δύο πλατφόρμες, που αντιπροσωπεύονται από ορθογώνια, για να λειτουργήσουν ως περιβάλλον παιχνιδιού. Δημιουργήστε ένα νέο αρχείο με όνομα simple-game.py.
Ο κώδικας που χρησιμοποιείται σε αυτό το άρθρο είναι διαθέσιμος σε αυτό Αποθετήριο GitHub και είναι δωρεάν για χρήση βάσει της άδειας MIT.
Πρώτα, εισαγάγετε τη λειτουργική μονάδα pygame και αρχικοποιήστε την. Στη συνέχεια, ορίστε την αρχική θέση και την ταχύτητα κίνησης του παίκτη. Δημιουργήστε πλατφόρμες χρησιμοποιώντας pygame. Rect αντικείμενα και προσδιορίστε τις θέσεις και τις διαστάσεις τους.
Μέσα στο βρόχο του παιχνιδιού, χειριστείτε συμβάντα όπως η έξοδος από το παιχνίδι. Μπορείτε επίσης να χειριστείτε κίνηση του παίκτη με βάση τις εισόδους αφής ή πληκτρολογίου.
Εδώ είναι το αποτέλεσμα του απλού παιχνιδιού:
Δημιουργήστε διαφορετικά επίπεδα
Για να επιτύχετε το εφέ κύλισης, μπορείτε να δημιουργήσετε πολλαπλά στρώματα φόντου με διαφορετικά χρώματα. Κάθε στρώμα θα κινείται με διαφορετική ταχύτητα, δημιουργώντας ένα εφέ παράλλαξης. Αυτό το εφέ δίνει την ψευδαίσθηση του βάθους και ενισχύει την αίσθηση της κίνησης στο παιχνίδι.
Ορίστε δύο επίπεδα φόντου, το καθένα να καλύπτει ολόκληρο το παράθυρο του παιχνιδιού, χρησιμοποιώντας το pygame. Διορθώστε αντικείμενα. Καθορίστε επίσης τα χρώματα κάθε στρώματος στο φόντο_χρώματα λίστα. ο background_speeds Η λίστα καθορίζει την ταχύτητα με την οποία θα κινηθεί κάθε στρώμα.
# Προσθέστε αυτόν τον κωδικό κάτω από την προηγούμενη ενότητα
στρώματα_background = [
pygame. Rect(0, 0, screen_width, screen_height),
pygame. Rect(0, 0, screen_width, screen_height)
]
φόντο_χρώματα = [(30, 30, 30), (60, 60, 60)]
background_speeds = [0.1, 1.0]
Για να δημιουργήσετε το εφέ φόντου κύλισης, πρέπει να ενημερώσετε τις θέσεις των επιπέδων φόντου στον βρόχο του παιχνιδιού. Θα μετακινήσετε κάθε επίπεδο οριζόντια με βάση την εκχωρημένη ταχύτητα.
Δημιουργήστε ένα νέο αρχείο με όνομα scrolling-bg.py και προσθέστε τον κωδικό με τις παρακάτω ενημερώσεις:
Για Εγώ σε εύρος (len (background_layers)):
background_layers[i].x -= background_speeds[i]αν background_layers[i].x <= -screen_width:
στρώματα_background[i].x = 0
pygame.draw.rect (οθόνη, background_colors[i], background_layers[i])
Επανάληψη σε κάθε επίπεδο φόντου. Αφαιρέστε την αντίστοιχη ταχύτητα από τη συντεταγμένη x του στρώματος, με αποτέλεσμα να μετακινηθεί προς τα αριστερά. Εάν ένα στρώμα φτάσει στο αριστερό άκρο της οθόνης, επαναφέρετε τη θέση του προς τα δεξιά, δημιουργώντας ένα εφέ συνεχούς κύλισης.
Τελικά, σχεδιάστε κάθε ορθογώνιο στρώμα φόντου στην οθόνη χρησιμοποιώντας pygame.draw.rect() και περνώντας το αντίστοιχο χρώμα και pygame. Rect αντικείμενο.
Προσθήκη εφέ παράλλαξης κατά την κίνηση
Για να βελτιώσετε το εφέ παράλλαξης, μπορείτε να τροποποιήσετε την κίνηση της πλατφόρμας ώστε να εμφανίζεται όταν η συσκευή αναπαραγωγής κινείται. Αυτό θα δημιουργήσει μια ισχυρή αίσθηση βάθους και δυναμικής κίνησης. Δημιουργήστε ένα νέο αρχείο με όνομα parallax.py και προσθέστε τον κωδικό με τις παρακάτω ενημερώσεις:
# Καθορίστε τις θέσεις και τις ταχύτητες της πλατφόρμας
rect1 = pygame. Rect(50, οθόνη_ύψος - 100, 200, 10)
rect2 = pygame. Rect (πλάτος_οθόνης - 250, οθόνη_ύψος - 200, 200, 10)πλατφόρμες = [
{"διόρθωση": ορθό1, "Ταχύτητα": 3},
{"διόρθωση": ορθό2, "Ταχύτητα": 1}
]# Προσθέστε αυτόν τον κωδικό μέσα στον βρόχο του παιχνιδιού
# Κίνηση παίκτη
keys = pygame.key.get_pressed()αν κλειδιά[pygame. K_LEFT] και player_x > 0:
player_x -= player_speedΓια πλατφόρμα σε πλατφόρμες:
πλατφόρμα["διόρθωση"].x -= πλατφόρμα["Ταχύτητα"]αν κλειδιά[pygame. K_RIGHT] και player_x < screen_width:
player_x += player_speedΓια πλατφόρμα σε πλατφόρμες:
πλατφόρμα["διόρθωση"].x += πλατφόρμα["Ταχύτητα"]
Για πλατφόρμα σε πλατφόρμες:
pygame.draw.rect (οθόνη, (0, 255, 0), πλατφόρμα["διόρθωση"])
Αντιπροσωπεύστε τις πλατφόρμες ως λεξικά που περιέχουν τόσο το ορθογώνιο αντικείμενο (όρθιο) όσο και την ταχύτητα με την οποία πρέπει να κινηθεί η πλατφόρμα (ταχύτητα). Οι πλατφόρμες ενημερώνονται στο βρόχο παιχνιδιού με βάση την κίνηση του παίκτη.
Με την εφαρμογή αυτής της τροποποίησης, το εφέ κύλισης θα είναι ενεργό μόνο όταν η συσκευή αναπαραγωγής κινείται ενεργά, ενισχύοντας περαιτέρω την ψευδαίσθηση του βάθους και της κίνησης.
Συμπεριλαμβανομένων πρόσθετων χαρακτηριστικών
Μπορείτε να εφαρμόσετε πολλές πρόσθετες λειτουργίες για να βελτιώσετε τα φόντα κύλισης στο παιχνίδι σας. Να μερικά παραδείγματα.
Τυχαιοποίηση χρωμάτων φόντου
Για να προσθέσετε παραλλαγή στα επίπεδα φόντου, μπορείτε να τυχαιοποιήσετε τα χρώματά τους. Μπορείτε να το κάνετε αυτό τροποποιώντας το φόντο_χρώματα λίστα:
εισαγωγή τυχαίος
# Προσθέστε αυτόν τον κωδικό πριν από το βρόχο παιχνιδιού
φόντο_χρώματα = [
(random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)),
(random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)),
(random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))
]
Προσθέστε περισσότερα επίπεδα φόντου
Μπορείτε να πειραματιστείτε με την προσθήκη περισσότερων επιπέδων φόντου για να δημιουργήσετε ένα πιο πλούσιο εφέ παράλλαξης. Απλώς ορίστε επιπλέον pygame. Rect αντικείμενα, χρώματα και ταχύτητες:
# Προσθέστε αυτόν τον κωδικό πριν από το βρόχο παιχνιδιού
στρώματα_background = [
pygame. Rect(0, 0, screen_width, screen_height),
pygame. Rect(0, 0, screen_width, screen_height),
pygame. Rect(0, 0, screen_width, screen_height),
pygame. Rect(0, 0, screen_width, screen_height)
]φόντο_χρώματα = [
(30, 30, 30),
(60, 60, 60),
(90, 90, 90),
(120, 120, 120)
]
background_speeds = [1, 2, 3, 4]
Χρησιμοποιήστε εικόνες για φόντο
Αντί για συμπαγή χρώματα, μπορείτε να χρησιμοποιήσετε αρχεία εικόνας ως φόντο. Το Pygame παρέχει λειτουργίες για τη φόρτωση και την απόδοση εικόνων.
Φορτώστε τα αρχεία εικόνας background_0.png, background_1.png, και background_2.png χρησιμοποιώντας pygame.image.load(). Χρησιμοποιήστε τη μέθοδο convert() για να βελτιώσετε την απόδοση και να κλιμακώσετε τις εικόνες ώστε να ταιριάζουν με τις διαστάσεις της οθόνης pygame.transform.scale().
# Προσθέστε αυτόν τον κωδικό πριν από το βρόχο παιχνιδιού
φόντο_εικόνες = [
pygame.image.load("background_0.png").μετατρέπω(),
pygame.image.load("background_1.png").μετατρέπω(),
pygame.image.load("background_2.png").μετατρέπω()
]background_speeds = [1, 2, 3]
Για Εγώ σε εύρος (len (φόντο_εικόνες)):
μέγεθος = (πλάτος_οθόνης, ύψος_οθόνης)
background_images[i] = pygame.transform.scale (background_images[i], μέγεθος)
Τέλος, ενημερώστε τον βρόχο όπου σχεδιάζετε τα επίπεδα φόντου για να χρησιμοποιήσετε τις εικόνες:
# Ενημερώστε αυτόν τον κωδικό μέσα στο βρόχο του παιχνιδιού
Για Εγώ σε εύρος (len (background_layers)):
background_layers[i].x -= background_speeds[i]αν background_layers[i].x <= -screen_width:
στρώματα_background[i].x = 0
screen.blit (background_images[i], background_layers[i])
Ακολουθούν ορισμένες βέλτιστες πρακτικές που πρέπει να λάβετε υπόψη κατά την εφαρμογή φόντου κύλισης στα έργα σας στο Pygame.
Βελτιστοποίηση απόδοσης
Τα φόντα κύλισης περιλαμβάνουν συνεχή απόδοση και ενημέρωση. Για να διασφαλίσετε ομαλό παιχνίδι, σκεφτείτε να βελτιστοποιήσετε τον κώδικά σας και να ελαχιστοποιήσετε τους περιττούς υπολογισμούς.
Πειραματιστείτε με τις ταχύτητες επιπέδων
Η προσαρμογή των ταχυτήτων των επιπέδων φόντου μπορεί να δημιουργήσει διαφορετικά εφέ. Παίξτε με διαφορετικές τιμές για να βρείτε τη σωστή ισορροπία και να επιτύχετε το επιθυμητό οπτικό αποτέλεσμα.
Δοκιμή σε διαφορετικά μεγέθη οθόνης
Βεβαιωθείτε ότι τα φόντα κύλισης λειτουργούν καλά σε διάφορες αναλύσεις οθόνης. Εξετάστε το ενδεχόμενο εφαρμογής δυναμικής κλιμάκωσης ή χρήσης διαφορετικών εικόνων φόντου για διαφορετικούς λόγους διαστάσεων.
Χρησιμοποιήστε κατάλληλες μορφές εικόνας
Εάν αποφασίσετε να χρησιμοποιήσετε εικόνες για το φόντο σας, επιλέξτε την κατάλληλη μορφή εικόνας (π.χ. PNG, JPEG) για να εξισορροπήσετε το μέγεθος του αρχείου και την ποιότητα της εικόνας. Μπορείτε επίσης να μειώσετε τους χρόνους φόρτωσης συμπιέζοντας και βελτιστοποιώντας τις εικόνες σας.
Εξετάστε τη χρήση της μνήμης
Εάν σκοπεύετε να χρησιμοποιήσετε πολλές εικόνες υψηλής ανάλυσης για το φόντο σας, να έχετε υπόψη σας τις απαιτήσεις μνήμης. Οι μεγάλες εικόνες μπορούν να καταναλώσουν σημαντική ποσότητα μνήμης, επηρεάζοντας δυνητικά την απόδοση και την απόκριση του παιχνιδιού σας.
Ενσωματώνοντας φόντο κύλισης, μπορείτε να δημιουργήσετε διαφορετικά περιβάλλοντα, όπως κινούμενα τοπία, φουτουριστικά αστικά τοπία ή υποβρύχιους κόσμους. Το εφέ παράλλαξης προσθέτει μια δυναμική πινελιά, κάνοντας τον κόσμο του παιχνιδιού να αισθάνεται ζωντανός και διαδραστικός.
Θυμηθείτε να πειραματιστείτε, να επαναλάβετε και να εξερευνήσετε δημιουργικές δυνατότητες με φόντο κύλισης για να κάνετε τα παιχνίδια σας πιο διασκεδαστικά και συναρπαστικά για τους παίκτες.