background image

Σχεδίαση και υλοποίηση κύβων tangible computing 

 

67 

 

προηγούμενη  ενότητα,  όπου  αναγράφονται    μόνο  τα  διακριτικά  των  συνόρων  της  πίστας 

περιμετρικά του δρόμου. Με αυτή την εικόνα θα έπρεπε να συγκρουστεί το όχημα ώστε να 

μην  εξέρχεται  των  συνόρων  της  πίστας.  Η  υλοποίηση  της  σύγκρουσης  στο  εικονικό 

περιβάλλον της pygame έγινε μέσω της χρήσης των pygame μασκών και την εφαρμογή της 

διαδικασίας της τέλειας σύγκρουσης των εικονοστοιχείων. 

Κατά  τη  χρήση  της  pygame  μάσκας  μέσω  της  συνάρτησης  pygame.mask  (Εικόνα  3.13) 

δημιουργείται  ένα  αντικείμενο  μάσκας  από  τη  δεδομένη  επιφάνεια,  στη  συγκεκριμένη 

περίπτωση  των  ορίων  της  πίστας,  ορίζοντας  όλα  τα  αδιαφανή  εικονοστοιχεία  και  όχι  τα 

διαφανή.  Όπως  έχει  προαναφερθεί  η  εικόνα  στην  pygame  ορίζεται  ως  ένα  εικονικό 

τετράγωνο άρα οι όροι αδιαφανή και διαφανή περιγράφουν τα εικονοστοιχεία που φαίνονται 

και  δεν  φαίνονται  από  το  μάτι  αντίστοιχα.  Επομένως  εάν  ένα  κλειδί  χρώματος 

χρησιμοποιείται από την επιφάνεια τότε το ίδιο το κλειδί χρησιμοποιείται για να αποφασιστεί 

από  τη  συνάρτηση  ποιο  κομμάτι  από  τη  μάσκα  που  δημιουργείται  θα  οριστεί.  Όλα  τα 

εικονοστοιχεία που δεν είναι ίσα με το κλειδί χρώματος  του ορίου της πίστας ορίζονται και 

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

τα όρια της πίστας όσο και για το αυτοκίνητο. 

 

 

 

Εικόνα 3.14: Δημιουργία μάσκας στην εικόνα με τα όρια της πίστας (γραμμές 14,15) και αλληλεπίδραση με 

αυτή (γραμμές 298,299) 

 

Λαμβάνοντας υπόψη λοιπόν όλα τα παραπάνω η σύγκρουση ορίστηκε με βάση το άγγιγμα 

των δύο  μασκών δηλαδή  την  επαφή  των  έγχρωμων  εικονοστοιχείων  των  εικόνων.  Κατά  τη 

σύγκρουση ορίστηκε να γίνεται μία μικρή αναπήδηση του αυτοκινήτου προς τα πίσω ώστε να 

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

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

έξοδός του από τα σύνορα της πίστας.