Βίντεο: 27 Tempting IKEA TABLE Hack 2024
Όταν οι sprites αρχίσουν να κινούνται, υπάρχει πάντα η πιθανότητα να φεύγουν από τα όρια της οθόνης. Συνήθως, οι προγραμματιστές παιχνιδιών HTML5 αποκρίνονται με έναν από τους πέντε τρόπους: περιτύλιγμα, αναπήδηση, διακοπή, θάνατος ή συνέχιση. Η βιβλιοθήκη simpleGame διαθέτει μια ρουτίνα ελέγχου ορίων που σας επιτρέπει να καθορίσετε ποια από αυτές τις προεπιλεγμένες συμπεριφορές θα χρησιμοποιήσετε. Η ιδιότητα boundation του sprite δηλώνει την ενέργεια που πρέπει να χρησιμοποιηθεί. Μπορείτε να χρησιμοποιήσετε τον έλεγχο ορίων για να κάνετε τα εξής:
-
Προσδιορίστε τα σύνορα.
Τα σύνορα καθορίζονται από το πλάτος του καμβά.
-
Ελέγξτε αν ο χρήστης βρίσκεται εκτός συνόρων.
Στη συνέχεια, έγινε μια άλλη σειρά μεταβλητών που περιέχουν τιμές Boolean που δείχνουν εάν το sprite είναι εκτός ενός από τα σύνορα: offRight, offLeft, offTop και offBottom. Χρησιμοποιήστε τις βασικές εντολές if για να προσδιορίσετε εάν το sprite είναι εκτός οθόνης με έναν από αυτούς τους τρόπους.
-
Προσδιορίστε τη δράση ορίων.
Χρησιμοποιήστε μια απλή εντολή if για να καθορίσετε ποια οριακή ενέργεια έχει οριστεί για το sprite.
-
Εάν η boundAction είναι WRAP:
Αλλάξτε τη μεταβλητή x ή y στην αντίθετη πλευρά, αλλά αφήστε μόνο τις τιμές dx και dy.
-
Αν ο δεσμός είναι BOUNCE:
Αντιστρέφουμε το dy αν ο sprite αναπηδήσει από την κορυφή ή το κάτω μέρος και dx αν ο sprite αναπηδήσει από αριστερά ή δεξιά. Δεν είναι απαραίτητο να αλλάξετε απευθείας το x ή το y.
-
Εάν η δεσμεύει είναι STOP:
Απλά ρυθμίστε την ταχύτητα στο μηδέν ανεξάρτητα από το ποιο όριο εξήλθε.
-
Εάν η boundAction είναι DIE:
Ρυθμίστε την ταχύτητα στο μηδέν και καλέστε τη μέθοδο hide () του sprite. Αυτό θα προκαλέσει την εξαφάνιση του σπάιτ και δεν θα ληφθεί υπόψη σε υπολογισμούς συγκρούσεων.
-
Οποιοσδήποτε άλλος δεσμός θεωρείται CONTINUE.
Καμία ενέργεια δεν είναι απαραίτητη εδώ, επειδή το sprite θα συνεχίσει να κινείται ακόμα κι αν δεν είναι ορατό. Αν αυτό είναι το επιθυμητό αποτέλεσμα, θα πρέπει κάπως να υποδείξετε στο χρήστη όπου βρίσκεται το sprite ή να δώσετε κάποιο τρόπο για να επιστρέψει ο sprite.
Εδώ είναι μέρος του κώδικα για τη ρουτίνα ελέγχου σύγκρουσης:
offRight = false; offLeft = false; offTop = false; offBottom = false; εάν (αυτό x = rightBorder) {offRight = true;} εάν (αυτό το x. bottomBorder) {offBottom = true; {if (offRight) {αυτό. x = leftBorder ·} // αν είναι αν (offBottom) {this. y = topBorder,} // τέλος εάν αν (offLeft) {αυτό. x = rightBorder,} // τέλος εάν αν (offTop) {this. y = bottomBorder?}} else if (this.boundAction == BOUNCE) {if (offTop || offBottom) {αυτό.dy * = -1. Αυτό. calcSpeedAngle (); Αυτό. imgAngle = αυτό. moveAngle;} αν (offLeft || offRight) {αυτό. dx * = -1. Αυτό. calcSpeedAngle (); Αυτό. imgAngle = αυτό. Αλλαγή εάν (αυτό =.) = {STOP} {if (offLeft || offRight || offTop || offBottom) {αυτό. setSpeed (0),}} αλλιώς αν (αυτό.) = if (offLeft || offRight || offTop || offBottom) {αυτό. κρύβω(); Αυτό. setSpeed (0)?}} αλλιώς {// συνεχίστε να πηγαίνει για πάντα}} // end checkbounds
Αν θέλετε να αλλάξετε μια δράση ορίων ενός sprite στο simpleGame, μπορείτε να χρησιμοποιήσετε τη μέθοδο setBoundAction () για να το κάνετε.
Σημειώστε ότι ορισμένες περιπτώσεις μπορεί να απαιτούν διαφορετικές συμπεριφορές. Για παράδειγμα, μπορεί να θέλετε να τυλίξετε γύρω από τις πλευρές αλλά να σταματήσετε στο πάνω ή στο κάτω μέρος. Εάν χρειάζεστε μια πιο συγκεκριμένη συμπεριφορά, απλά δημιουργήστε μια νέα μέθοδο checkBounds () για το sprite σας. Ωστόσο, θα πρέπει να ελέγξετε όλα τα όρια επειδή το νέο checkBounds () θα αντικαταστήσει εντελώς το ενσωματωμένο στο simpleGame.