Είσοδος ποντικιού και πληκτρολογίου στο Gosu

click fraud protection

Τα παιχνίδια είναι, εξ ορισμού, διαδραστικά. Το Gosu κάνει την αλληλεπίδραση αυτή απλή με μια απλή διεπαφή για την ανίχνευση και την αντίδραση στα πλήκτρα του ποντικιού και του ποντικιού.

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

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

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

instagram viewer
Gosu:: KbLeft, Gosu:: KbRight, Gosu:: KbUp και Gosu:: KbDown. Για μια πλήρη λίστα, ανατρέξτε στο τεκμηρίωση για την ενότητα Gosu.

Τα συμβάντα εισόδου παραδίδονται στο Gosu:: Παράθυρο παράδειγμα. Στον κύριο βρόχο, πριν εκσυγχρονίζω ονομάζεται Gosu, θα παραδώσει εκδηλώσεις για όλα τα κουμπιά που έχουν πατηθεί ή απελευθερωθεί. Κάνει αυτό καλώντας το button_down και button_up μεθόδους, πατώντας το αναγνωριστικό του πλήκτρου ή του πλήκτρου.

Στο button_down και button_up μεθόδους, βρίσκετε συχνά ένα υπόθεση δήλωση. Αυτό, εκτός από τη μεγάλη λειτουργία, παρέχει έναν πολύ κομψό και εκφραστικό τρόπο για να αποφασίσει τι πρέπει να κάνει ανάλογα με το ποιο κουμπί έχει πατηθεί ή απελευθερωθεί. Τα παρακάτω είναι ένα σύντομο παράδειγμα του τι a button_down η μέθοδος μπορεί να μοιάζει. Θα πρέπει να τοποθετηθεί στο δικό σας Gosu:: Παράθυρο υποκλάση και θα κλείσει το παράθυρο (τερματίζοντας το πρόγραμμα) όταν το διαφυγή πιέζεται το πλήκτρο.

Εύκολο, σωστά; Ας επεκτείνουμε αυτό. Εδώ είναι ένα Παίχτης τάξη. Μπορεί να μετακινηθεί αριστερά και δεξιά αν πατήσετε το αριστερό και το δεξί πλήκτρο. Σημειώστε ότι αυτή η κλάση έχει επίσης button_down και button_up μεθόδων. Λειτουργούν ακριβώς όπως οι μέθοδοι από ένα Gosu:: Παράθυρο υποδιαίρεση τάξεως. Ο Γκοσού δεν ξέρει τίποτα Παίχτης όμως, θα το καλούμε Παίχτης's μεθόδους από το Gosu:: Παράθυρο's. Ένα πλήρες, τρέξιμο παράδειγμα μπορεί να βρεθεί εδώ.

Εάν η εισαγωγή με βάση τα συμβάντα δεν είναι το στυλ σας, μπορείτε να ζητήσετε οποιαδήποτε ερώτηση Gosu:: Παράθυρο για να δείτε αν οποιοδήποτε κουμπί ή πλήκτρο είναι πατημένο, ανά πάσα στιγμή. Μπορείτε να αγνοήσετε το button_down και button_up κλήσεις εξ ολοκλήρου.

Για να κάνετε ερώτηση στο Gosu:: Παράθυρο για να δείτε εάν πατηθεί ένα πλήκτρο, καλέστε το button_down; με την ταυτότητα του κουμπιού που θέλετε να ελέγξετε. Μην ξεχάσετε το ερωτηματικό σε αυτή την κλήση! Αν καλέσετε κουμπί_down (Gosu:: KbLeft), θα είσαι αναφορές πατήστε ένα κουμπί στο Gosu:: Παράθυρο υποδιαίρεση τάξεως. Ακόμη και αν δεν έχετε ορίσει καμία μέθοδο επανάκλησης, η γονική κλάση, Gosu:: Παράθυρο θα. Δεν θα υπάρξει σφάλμα, απλά δεν θα λειτουργήσει όπως περιμένετε. Απλά μην ξεχάσετε αυτό το ερωτηματικό!

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

Τα κουμπιά του ποντικιού χειρίζονται με τον ίδιο τρόπο όπως τα κουμπιά πληκτρολογίου και παιχνιδιών. Μπορείτε να τα ερωτήσετε και τα δύο button_down; και τα γεγονότα με button_down και button_up. Ωστόσο, η κίνηση του ποντικιού μπορεί να ερωτηθεί μόνο, δεν υπάρχουν γεγονότα για κίνηση του ποντικιού. Gosu:: Παράθυρο'μικρό mouse_x και ποντικοειδής οι μέθοδοι παρέχουν τις συντεταγμένες Χ και Υ του δείκτη του ποντικιού.

Σημειώστε ότι οι συντεταγμένες X και Y σχετίζονται με το παράθυρο του παιχνιδιού. Έτσι, για παράδειγμα, αν το ποντίκι βρίσκεται στην επάνω αριστερή γωνία, θα βρίσκεται κοντά στη συντεταγμένη (0,0). Επίσης, αν είναι ο δείκτης του ποντικιού εξω απο του παραθύρου του παιχνιδιού εξ ολοκλήρου, θα εξακολουθεί να αναφέρει πού είναι ο δείκτης σε σχέση με το παράθυρο. Και τα δύο mouse_x και ποντικοειδής μπορεί να είναι μικρότερη από μηδέν και μεγαλύτερη από το πλάτος ή το ύψος του παραθύρου.

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

instagram story viewer