4.2.5 - Επεξεργασία κάδρου και κλείσιμο προγράμματος

Η Κύρια επανάληψη

Η βασική λογική και το πλαίσιο κώδικα του παιχνιδιού:

  • Όσο δεν είναι η μεταβλητή done αληθής:
  1. Για κάθε συμβάν (πάτημα πλήκτρου, κίνηση ποντικιού, κλπ.):
  2. Χρησιμοποιήστε μία σειρά εντολών if για το χειρισμό του κάθε γεγονότος.
  3. Εκτελέστε υπολογισμούς για να καθοριστεί που κινούνται τα αντικείμενα, τι θα συμβεί αν υπάρξει σύγκρουση, κλπ.
  4. Αδειάστε την οθόνη
  5. Σχεδιάστε ότι επιθυμείτε 

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

Καρέ ανά δευτερόλεπτο (Frames Per Second)

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

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

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

Τελείωμα

Τώρα, πατώντας το κουμπί  “close” ενός παραθύρου ενώ αυτό τρέχει αυτό το πρόγραμμα και πάλι θα έχει σαν αποτέλεσμα το πρόγραμμα να κολλήσει. Αυτό φέρνει μία ταλαιπωρία γιατί απαιτούνται πολλά κλικ για να κλείσει ένα πρόγραμμα που κολλήσει.

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

pygame.quit()

Ευτυχώς το Thonny έχει το κουμπί   , σε περίπτωση που ξεχάσαμε να τερματίσουμε το πρόγραμμα σωστά.

Καθαρίζοντας την οθόνη

Ο Κώδικας που ακολουθεί καθαρίζει ότι υπάρχει στο παράθυρο με ένα άσπρο υπόβαθρο. Θυμηθείτε ότι η μεταβλητή WHITE ορίστηκε νωρίτερα ως μία λίστα με τρεις τιμές (RGB).

screen.fill(WHITE)

Ανανέωση της οθόνης

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

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

pygame.display.flip()