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

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

Ο χρόνος είναι ένα από τα πιο κρίσιμα στοιχεία της ανάπτυξης παιχνιδιών και η κατανόηση του τρόπου λειτουργίας του χρόνου στο PyGame είναι απαραίτητη για τη δημιουργία ελκυστικών και επιτυχημένων παιχνιδιών. Το PyGame παρέχει πολλές χρήσιμες λειτουργίες και ενότητες που σας επιτρέπουν να ελέγχετε τον χρόνο στα παιχνίδια σας.

Δημιουργία ενός απλού παιχνιδιού

Ξεκινήστε δημιουργώντας ένα απλό παιχνίδι όπου ένα ορθογώνιο κινείται δεξιά. Να ξεκινήσω, εγκαταστήστε το pip στη συσκευή σας και χρησιμοποιήστε την παρακάτω εντολή για να εγκαταστήσετε τη λειτουργική μονάδα PyGame:

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

Μπορείτε να βρείτε όλα τα παραδείγματα κώδικα σε αυτό Αποθετήριο GitHub.

instagram viewer

Μόλις εγκατασταθεί, εισαγάγετε τη λειτουργική μονάδα PyGame. Στη συνέχεια, δημιουργήστε μια οθόνη με μέγεθος 800x600 και λευκό φόντο και προσθέστε ένα ορθό αντικείμενο. Ο κώδικας πρέπει να μοιάζει κάπως έτσι:

εισαγωγή pygame
pygame.init()
οθόνη = pygame.display.set_mode((800, 600))
φόντο = pygame. Επιφάνεια (screen.get_size())
background.fill((255, 255, 255))
ορθός = pygame. Rect(0, 0, 20, 20)

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

τρέξιμο = Αληθής

ενώ τρέξιμο:
Για Εκδήλωση σε pygame.event.get():
αν event.type == pygame. ΕΓΚΑΤΑΛΕΙΠΩ:
τρέξιμο = Ψευδής

ορθ.χ += 1

αν ορθ.χ > 780:
ορθ.χ = 0

screen.blit (φόντο, (0, 0))
pygame.draw.rect (οθόνη, (0, 0, 0), ορθό)
pygame.display.update()

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

Επισκόπηση της ενότητας χρόνου του PyGame

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

Δημιουργία αντικειμένου ρολογιού για παρακολούθηση ώρας

Στο PyGame, μπορείτε να χρησιμοποιήσετε ένα αντικείμενο Ρολόι για να παρακολουθείτε την ώρα. Για να δημιουργήσετε ένα Ρολόι, απλώς χρησιμοποιήστε την ακόλουθη γραμμή κώδικα:

ρολόι = pygame.ώρα. Ρολόι()

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

  • get_time(): Με τη βοήθεια αυτής της λειτουργίας, μπορείτε να ανακτήσετε τον χρόνο που απαιτείται για κάθε καρέ του παιχνιδιού. Για να χρησιμοποιήσετε αυτήν τη συνάρτηση, απλώς προσθέστε την ακόλουθη γραμμή κώδικα μετά τον βρόχο while:
    time = clock.get_time()
    Προσθέστε ένα αντικείμενο κειμένου για να εμφανίσετε τον χρόνο που απαιτείται:
    γραμματοσειρά = pygame.font. SysFont('Arial', 18)
    text = font.render('Χρόνος που απαιτείται: {} ms'.μορφή (χρόνος), Αληθής, (0, 0, 0))
    screen.blit (κείμενο, (0, 0))
  • τσιμπούρι(): Χρησιμοποιήστε αυτή τη λειτουργία για να ρυθμίσετε τον ρυθμό καρέ του παιχνιδιού. Από προεπιλογή, ο ρυθμός καρέ έχει οριστεί στα 60 FPS. Για να το ρυθμίσετε στα 30 FPS, απλώς προσθέστε την ακόλουθη γραμμή κώδικα:
    clock.tick(30)
  • get_fps(): Μπορείτε να ανακτήσετε τον τρέχοντα ρυθμό καρέ του παιχνιδιού χρησιμοποιώντας το get_fps. Για να χρησιμοποιήσετε αυτή τη λειτουργία, απλώς προσθέστε την ακόλουθη γραμμή κώδικα:
    fps = clock.get_fps()
    Μπορείτε να προσθέσετε ένα αντικείμενο κειμένου για να εμφανίσετε τον ρυθμό καρέ:
    γραμματοσειρά = pygame.font. SysFont('Arial', 18)
    text = font.render('FPS: {}'.format (fps), Αληθής, (0, 0, 0))
    screen.blit (κείμενο, (0, 20))
  • tick_busy_loop(): Αυτή η συνάρτηση σάς επιτρέπει να υπολογίσετε πόσα χιλιοστά του δευτερολέπτου έχουν περάσει από την τελευταία κλήση προς το τσιμπούρι() λειτουργία. Για να το χρησιμοποιήσετε, απλώς προσθέστε την ακόλουθη γραμμή κώδικα:
    clock.tick_busy_loop(30)

Λήψη του χρόνου Χρησιμοποιώντας το get_ticks

ο get_ticks() Η συνάρτηση επιστρέφει το χρόνο σε χιλιοστά του δευτερολέπτου από την προετοιμασία του PyGame. Για να χρησιμοποιήσετε αυτήν τη λειτουργία, προσθέστε την ακόλουθη γραμμή κώδικα:

time_elapsed = pygame.time.get_ticks()

Προσθέστε ένα αντικείμενο κειμένου για να εμφανίσετε τον χρόνο που απαιτείται:

γραμματοσειρά = pygame.font. SysFont('Arial', 18)
text = font.render('Χρόνος που πέρασε: {} ms'.format (time_lapsed), Αληθής, (0, 0, 0))
screen.blit (κείμενο, (0, 40))

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

αν ο χρόνος τελείωσε / 5000 > 0:
ορθ.χ += 5

Παρακάτω είναι η έξοδος:

Παύση του παιχνιδιού Χρήση των λειτουργιών αναμονής και καθυστέρησης

Το PyGame παρέχει επίσης δύο λειτουργίες που μπορείτε να χρησιμοποιήσετε για να σταματήσετε το παιχνίδι για συγκεκριμένο χρονικό διάστημα: το Περίμενε λειτουργία και το καθυστέρηση λειτουργία.

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

pygame.time.wait(1000)

Αυτό θα διακόψει το παιχνίδι για 1000 χιλιοστά του δευτερολέπτου (1 δευτερόλεπτο). Για να χρησιμοποιήσετε το καθυστέρηση συνάρτηση, απλώς προσθέστε την ακόλουθη γραμμή κώδικα στον βρόχο while:

pygame.time.delay(1000)

Αυτό θα καθυστερήσει το επόμενο καρέ του παιχνιδιού για 1000 χιλιοστά του δευτερολέπτου (1 δευτερόλεπτο).

Διαφορές μεταξύ αναμονής και καθυστέρησης

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

Δημιουργία συμβάντος με χρήση set_timer

Μπορείτε να χρησιμοποιήσετε το set_timer() λειτουργία για τη δημιουργία ενός συμβάντος που ενεργοποιείται μετά από ένα καθορισμένο χρονικό διάστημα.

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

pygame.time.set_timer (CUSTOM_EVENT, 1000)

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

Για παράδειγμα, εάν θέλετε να αλλάξετε τον άξονα y του ορθού αντικειμένου μετά από 1 δευτερόλεπτο ή όταν ενεργοποιηθεί το προσαρμοσμένο συμβάν, μπορείτε να προσθέσετε την ακόλουθη γραμμή κώδικα:

αν event.type == CUSTOM_EVENT:
ορθ.υ += 20

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

Βελτιώστε τα στοιχεία ελέγχου παιχνιδιού με το χρόνο

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

Χρησιμοποιώντας τις λειτουργίες ελέγχου χρόνου στο PyGame, μπορείτε εύκολα να εφαρμόσετε τέτοιες λειτουργίες —και πολλά άλλα— στα δικά σας παιχνίδια.