Τι νόημα έχει ένα παιχνίδι χωρίς σκορ; Ορισμένα μπορούν να κάνουν χωρίς, αλλά τα περισσότερα παιχνίδια που θα δημιουργήσετε θα πρέπει να λένε στον παίκτη πόσο καλά τα πάει.

Οι βαθμολογίες αποτελούν αναπόσπαστο μέρος πολλών παιχνιδιών καθώς παρέχουν ένα μέτρο προόδου και επιτευγμάτων για τους παίκτες.

Στην Python, η βιβλιοθήκη Arcade προσφέρει έναν απλό και αποτελεσματικό τρόπο διαχείρισης βαθμολογιών σε παιχνίδια. Με την αποτελεσματική διαχείριση των βαθμολογιών, μπορείτε να βελτιώσετε την αφοσίωση των χρηστών και να προσφέρετε μια πιο καθηλωτική εμπειρία παιχνιδιού.

Δημιουργήστε ένα απλό παιχνίδι

Πριν ξεκινήσετε, βεβαιωθείτε ότι έχετε pip εγκατεστημένο στη συσκευή σας. Χρησιμοποιήστε αυτήν την εντολή για να εγκαταστήσετε τη βιβλιοθήκη arcade:

pip εγκατάσταση arcade

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

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

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

instagram viewer

εισαγωγή στοά

# Ρύθμιση διαστάσεων παραθύρου
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600

τάξηMyGame(στοά. Παράθυρο):
def__μέσα σε αυτό__(εαυτός, πλάτος, ύψος):
super().__init__(πλάτος, ύψος)
self.player_x = πλάτος // 3
αυτο.βαθμολογία = 0

defon_key_press(αυτο, κλειδί, τροποποιητές):
αν κλειδί == arcade.key. ΑΡΙΣΤΕΡΑ:
self.player_x -= 10
ελιφ κλειδί == arcade.key. ΣΩΣΤΑ:
self.player_x += 10

defεκσυγχρονίζω(self, delta_time):
# Ενημερώστε τη λογική του παιχνιδιού εδώ
πέρασμα

defon_draw(εαυτός):
arcade.start_render()
arcade.draw_circle_filled (self.player_x, 50, 20, arcade.color. ΜΠΛΕ)
arcade.draw_rectangle_filled(400, 50, 100, 50, arcade.color. ΤΟ ΚΟΚΚΙΝΟ)

defκύριος():
παιχνίδι = MyGame (SCREEN_WIDTH, SCREEN_HEIGHT)
arcade.run()

αν __όνομα__ == "__κύριος__":
κύριος()

Παρακολούθηση και υπολογισμός βαθμολογίας

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

τάξηMyGame(στοά. Παράθυρο):
def__μέσα σε αυτό__(εαυτός, πλάτος, ύψος):
super().__init__(πλάτος, ύψος)
self.player_x = πλάτος // 3
αυτο.βαθμολογία = 0

defon_key_press(αυτο, κλειδί, τροποποιητές):
αν κλειδί == arcade.key. ΑΡΙΣΤΕΡΑ:
self.player_x -= 10
ελιφ κλειδί == arcade.key. ΣΩΣΤΑ:
self.player_x += 10

defεκσυγχρονίζω(self, delta_time):
αν self.player_x > 330και self.player_x < 470:
self.score += 1

Εμφάνιση της βαθμολογίας

Για να εμφανίσετε το σκορ στον παίκτη, τροποποιήστε το on_draw μέθοδος για να συμπεριλάβετε μια απόδοση κειμένου:

τάξηMyGame(στοά. Παράθυρο):
# ...

defon_draw(εαυτός):
arcade.start_render()
arcade.draw_circle_filled (self.player_x, 50, 20, arcade.color. ΜΠΛΕ)
arcade.draw_rectangle_filled(400, 300, 100, 50, arcade.color. ΤΟ ΚΟΚΚΙΝΟ)

score_text = στ" Βαθμολογία: {self.score}"
arcade.draw_text (score_text, 10, 10, arcade.color. ΑΣΠΡΟ, 14)

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

Αποθήκευση του High Score

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

Χρησιμοποιήστε το load_high_score μέθοδος για την ανάγνωση της υψηλής βαθμολογίας από ένα αρχείο που ονομάζεται high_score.txt και επιστρέψτε το. Μετά από αυτό, μπορείτε να αποθηκεύσετε τη νέα υψηλή βαθμολογία στο αρχείο χρησιμοποιώντας το save_high_score μέθοδος.

τάξηMyGame(στοά. Παράθυρο):
def__μέσα σε αυτό__(εαυτός, πλάτος, ύψος):
super().__init__(πλάτος, ύψος)
self.player_x = πλάτος // 3
αυτο.βαθμολογία = 0
self.high_score = self.load_high_score()

defload_high_score(εαυτός):
δοκιμάστε:
με Άνοιξε("high_score.txt", "r") όπως και αρχείο:
ΕΠΙΣΤΡΟΦΗ int (file.read())
εκτός FileNotFoundError:
ΕΠΙΣΤΡΟΦΗ0

defsave_high_score(εαυτός):
με Άνοιξε("high_score.txt", "w") όπως και αρχείο:
file.write (str (self.high_score))

defεκσυγχρονίζω(self, delta_time):
# ...

αν self.score > self.high_score:
self.high_score = αυτο.σκορ
self.save_high_score()

Εμφάνιση υψηλής βαθμολογίας

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

τάξηMyGame(στοά. Παράθυρο):
# ...

defon_draw(εαυτός):
# ...

high_score_text = στ"Υψηλή βαθμολογία: {self.high_score}"
arcade.draw_text (high_score_text, 10, 30, arcade.color. ΑΣΠΡΟ, 14)

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

Συμπεριλαμβανομένων πρόσθετων χαρακτηριστικών

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

Power-Ups

Τα power-ups είναι ειδικά αντικείμενα που παρέχουν στους παίκτες προσωρινά πλεονεκτήματα ή πόντους μπόνους. Δημιουργήστε ένα activate_power_up μέθοδος που ενεργοποιεί την ενεργοποίηση, ρυθμίζοντας το power_up_active σημαία σε True.

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

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

τάξηMyGame(στοά. Παράθυρο):
def__μέσα σε αυτό__(εαυτός, πλάτος, ύψος):
super().__init__(πλάτος, ύψος)
self.player_x = πλάτος // 3
αυτο.βαθμολογία = 0
self.power_up_active = Ψευδής

defεκσυγχρονίζω(self, delta_time):
αν self.power_up_active:
# Εφαρμόστε εφέ ενεργοποίησης κατά τη διάρκεια του παιχνιδιού
self.apply_power_up_effects()
self.score += 10

defapply_power_up_effects(εαυτός):
# Προσθέστε τη συγκεκριμένη λογική ενεργοποίησης εδώ
πέρασμα

defactivate_power_up(εαυτός):
self.power_up_active = Αληθής
# Ορίστε ένα χρονόμετρο ή διάρκεια για το εφέ ενεργοποίησης
arcade.schedule (self.deactivate_power_up, 10.0)

defdeactivate_power_up(self, delta_time):
self.power_up_active = Ψευδής

Σύστημα Combo

Ένα σύνθετο σύστημα ανταμείβει τους παίκτες για την επίτευξη διαδοχικών επιτυχημένων ενεργειών ή πολλαπλασιαστών βαθμολογίας. Δημιουργήστε ένα αύξηση_συνδυασμού_μετρητή μέθοδος που αυξάνει τον μετρητή συνδυασμού και αυξάνει τη βαθμολογία με βάση το τρέχον επίπεδο συνδυασμού.

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

τάξηMyGame(στοά. Παράθυρο):
def__μέσα σε αυτό__(εαυτός, πλάτος, ύψος):
super().__init__(πλάτος, ύψος)
self.player_x = πλάτος // 3
αυτο.βαθμολογία = 0
αυτο.combo_counter = 0

defεκσυγχρονίζω(self, delta_time):
# Ελέγξτε για επιτυχημένες ενέργειες
αν self.check_successful_action():
self.increase_combo_counter()
αλλού:
self.reset_combo_counter()

defαύξηση_συνδυασμού_μετρητή(εαυτός):
self.combo_counter += 1
self.score += self.combo_counter

defreset_combo_counter(εαυτός):
αυτο.combo_counter = 0

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

Βέλτιστες πρακτικές για τη διαχείριση βαθμολογίας

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

Μηχανισμοί με νόημα βαθμολογίας

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

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

Οπτική ανατροφοδότηση

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

Ηχητικά εφέ και κινούμενα σχέδια

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

Εξισορρόπηση δυσκολίας και κλιμάκωσης βαθμολογίας

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

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

Βελτιώστε την αφοσίωση στο παιχνίδι με την παρακολούθηση βαθμολογίας

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

Εμφανίστε τις βαθμολογίες σε περίοπτη θέση και επιβραβεύστε υψηλά επιτεύγματα—θα παρακινήσετε τους παίκτες να προσπαθήσουν για καλύτερη απόδοση και να βελτιώσουν τις δεξιότητές τους.