Σχεδίαση και υλοποίηση κύβων tangible computing
67
προηγούμενη ενότητα, όπου αναγράφονται μόνο τα διακριτικά των συνόρων της πίστας
περιμετρικά του δρόμου. Με αυτή την εικόνα θα έπρεπε να συγκρουστεί το όχημα ώστε να
μην εξέρχεται των συνόρων της πίστας. Η υλοποίηση της σύγκρουσης στο εικονικό
περιβάλλον της pygame έγινε μέσω της χρήσης των pygame μασκών και την εφαρμογή της
διαδικασίας της τέλειας σύγκρουσης των εικονοστοιχείων.
Κατά τη χρήση της pygame μάσκας μέσω της συνάρτησης pygame.mask (Εικόνα 3.13)
δημιουργείται ένα αντικείμενο μάσκας από τη δεδομένη επιφάνεια, στη συγκεκριμένη
περίπτωση των ορίων της πίστας, ορίζοντας όλα τα αδιαφανή εικονοστοιχεία και όχι τα
διαφανή. Όπως έχει προαναφερθεί η εικόνα στην pygame ορίζεται ως ένα εικονικό
τετράγωνο άρα οι όροι αδιαφανή και διαφανή περιγράφουν τα εικονοστοιχεία που φαίνονται
και δεν φαίνονται από το μάτι αντίστοιχα. Επομένως εάν ένα κλειδί χρώματος
χρησιμοποιείται από την επιφάνεια τότε το ίδιο το κλειδί χρησιμοποιείται για να αποφασιστεί
από τη συνάρτηση ποιο κομμάτι από τη μάσκα που δημιουργείται θα οριστεί. Όλα τα
εικονοστοιχεία που δεν είναι ίσα με το κλειδί χρώματος του ορίου της πίστας ορίζονται και
αντιθέτως τα εικονοστοιχεία που είναι ίσα δεν ορίζονται. Η μάσκα δημιουργήθηκε τόσο για
τα όρια της πίστας όσο και για το αυτοκίνητο.
Εικόνα 3.14: Δημιουργία μάσκας στην εικόνα με τα όρια της πίστας (γραμμές 14,15) και αλληλεπίδραση με
αυτή (γραμμές 298,299)
Λαμβάνοντας υπόψη λοιπόν όλα τα παραπάνω η σύγκρουση ορίστηκε με βάση το άγγιγμα
των δύο μασκών δηλαδή την επαφή των έγχρωμων εικονοστοιχείων των εικόνων. Κατά τη
σύγκρουση ορίστηκε να γίνεται μία μικρή αναπήδηση του αυτοκινήτου προς τα πίσω ώστε να
γίνεται αντιληπτή η επαφή από τους χρήστες και ευκολότερη η επαναπροσαρμογή της θέσης
του. Με αυτό τον τρόπο διευκολύνεται η οδήγηση του αμαξιού και φυσικά δεν επιτρέπεται η
έξοδός του από τα σύνορα της πίστας.