Σπίτι Προσωπικά Οικονομικά Πώς να προσθέσετε τις συγκρούσεις στο παιχνίδι σας HTML5 - dummies

Πώς να προσθέσετε τις συγκρούσεις στο παιχνίδι σας HTML5 - dummies

Πίνακας περιεχομένων:

Βίντεο: LIBGDX para Android - Tutorial 19 - Detectar Colisiones - How to make games Android 2024

Βίντεο: LIBGDX para Android - Tutorial 19 - Detectar Colisiones - How to make games Android 2024
Anonim

Τα πιο ενδιαφέροντα πράγματα στα παιχνίδια βίντεο HTML5 συμβαίνουν όταν τα sprites conk και συγκρούονται μεταξύ τους. Οι μηχανές παιχνιδιών έχουν συνήθως κάποιο εργαλείο για να ελέγξουν εάν δύο σπρίττες αλληλεπικαλύπτονται. Αυτό ονομάζεται ανίχνευση σύγκρουσης , και μπορεί να γίνει με διάφορους τρόπους. Αυτό το παράδειγμα χρησιμοποιεί το τυπικό σχήμα οριοθετημένο ορθογώνιο . Δεν είναι τέλειο, αλλά είναι πολύ εύκολο να εφαρμοστεί και χρησιμοποιείται ευρέως.

Πώς να ρυθμίσετε συγκρούσεις ορθογώνιου ορίου στο παιχνίδι σας

Ρίξτε μια ματιά στο colTest. html και θα δείτε ένα απλό παράδειγμα.

Στο colTest. html παράδειγμα, ο χρήστης μετακινεί το critter με το ποντίκι και θα λάβετε ένα μήνυμα όταν το critter αγγίζει το πλαίσιο στη μέση της οθόνης.

colTest. html checkCollisions (); πλαίσιο. εκσυγχρονίζω(); critter. update ();} // end update; λειτουργία checkCollisions () { αν (collidesWith (critter)) { έξοδος. innerHTML = "Σύγκρουση"; } αλλού { έξοδος. innerHTML = "Δεν υπάρχει σύγκρουση"; } // end if } // end checkCollisions empty

Σε αυτόν τον κώδικα συμβαίνουν πολλά ενδιαφέροντα πράγματα:

  1. Απόκρυψη του κανονικού δρομέα του ποντικιού.

    Όταν πρόκειται να έχετε κάποιο άλλο αντικείμενο ακολουθήστε το ποντίκι, κανονικά θέλετε να κρύψετε τον κανονικό δρομέα βέλους. Στο simpleGame, χρησιμοποιήστε το παιχνίδι. hideCursor () για να αποκρύψετε τον κέρσορα του ποντικιού μέσα στην οθόνη του παιχνιδιού.

  2. Δημιουργία περισσότερων από ένα sprite.

    Χρειάζονται δύο για ταγκό ή συγκρούονται. Σε αυτό το παράδειγμα, το κουτί θα παραμείνει ακίνητο και ένα critter που ακολουθεί το ποντίκι.

  3. Δώστε στο critter μια μέθοδο followMouse ().

    Σε αυτό το παράδειγμα, έχετε το critter ακολουθήστε το ποντίκι. Ξεκινήστε δημιουργώντας μια μέθοδο followMouse ().

  4. Καθορίστε τη θέση του ποντικιού.

    Η θέση του ποντικιού καθορίζεται (στο simpleGame. Js) με το έγγραφο. mouseX και έγγραφο. mouseY ιδιότητες.

  5. Αντιγράψτε τη θέση του ποντικιού στη θέση του critter.

    Χρησιμοποιήστε τη θέση x του ποντικιού για να ρυθμίσετε τη θέση x του critter και επαναλάβετε με το y.

  6. Καλέστε τη μέθοδο followMouse () κάθε κορνίζα.

    Ως συνήθως, η λειτουργία ενημέρωσης () είναι εκεί που βάζετε τον κώδικα που πρέπει να συμβαίνει επανειλημμένα.

Αν παίζετε με το colTest. html σελίδα, πιθανότατα θα παρατηρήσετε ότι οι συγκρούσεις δεν είναι ακριβείς. Είναι πιθανό να υπάρχει ένας καταχωρητής σύγκρουσης ακόμη και όταν το critter δεν αγγίζει πραγματικά το κουτί. Αυτό είναι σημαντικό επειδή το simpleGame χρησιμοποιεί ένα σχήμα που ονομάζεται συγκρούσεις κουτιού οριοθέτησης .

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

Συγκρούσεις που βασίζονται σε απόσταση για το παιχνίδι σας

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

  • Η απόσταση σύγκρουσης είναι σταθερή. Η απόσταση μεταξύ των κέντρων εικόνας δεν θα αλλάξει όταν περιστρέφονται οι εικόνες, ακόμη και αν οι εικόνες αλλάξουν το μέγεθος.

  • Το όριο σύγκρουσης μπορεί να ποικίλει. Μπορείτε να ορίσετε οποιαδήποτε ευαισθησία θέλετε. Ρυθμίστε μια μεγάλη ακτίνα σύγκρουσης για εύκολη σύγκρουση και μια μικρότερη όταν θέλετε οι συγκρούσεις να ενεργοποιούνται μόνο όταν οι σπρέι είναι πολύ κοντά ο ένας στον άλλο.

Το αντικείμενο Sprite της απλής ομάδας έχει μια μέθοδο distanceTo (), η οποία υπολογίζει την απόσταση από ένα sprite σε ένα άλλο. Μπορείτε να δείτε ένα παράδειγμα αυτού του κώδικα σε απόσταση. παράδειγμα html: απόσταση

. html var παιχνίδι? κουτί var? var critter; var output; λειτουργία init () {παιχνίδι = νέα σκηνή (); παιχνίδι. hideCursor (); κουτί = νέο Sprite (παιχνίδι, "simpleBox. png", 50, 50); critter = νέος Sprite (παιχνίδι, "critter. gif", 50, 50); output = document. getElementById ("έξοδος"); // δώστε σταθερό κουτί θέσης κουτιού. setPosition (200, 150). κουτί. setSpeed ​​(0); critter. setPosition (100, 100). critter. setSpeed ​​(0); // critter που ελέγχεται από το ποντίκι critter. followMouse = συνάρτηση () {this. setX (έγγραφο ποντικιούX). Αυτό. setY (έγγραφο ποντικιούY)}} // τέλος παιχνίδι followMouse. start ();} // end init λειτουργία ενημέρωσης () {παιχνίδι. Σαφή(); critter. followMouse (); checkDistance (); πλαίσιο. εκσυγχρονίζω(); critter. update ();} // end update; λειτουργία checkDistance () { dist = box. απόστασηTo (critter); αν (έξοδος <50) {). innerHTML = "Σύγκρουση:" + dist; } αλλού { έξοδος. innerHTML = "Δεν υπάρχει σύγκρουση:" + dist; } // τέλος εάν } // τέλος checkDistance κενό

Η μέθοδος σύγκρουσης που βασίζεται σε απόσταση είναι πολύ παρόμοια με την έκδοση bounding-rectangle. Δημιουργήστε μια λειτουργία checkDistance () που θα λειτουργεί ακριβώς όπως το παλιό checkCollisions (). Εδώ είναι τα βήματα για το τι συμβαίνει στο checkDistance:

  1. Βρείτε την απόσταση μεταξύ των δύο sprites.

    Χρησιμοποιήστε τη μέθοδο distanceTo () του sprite για να καθορίσετε την απόσταση μεταξύ των δύο sprites.

  2. Εάν η απόσταση είναι μικρότερη από κάποιο όριο, μετρήστε την ως σύγκρουση.

    Γενικά θα πρέπει να χρησιμοποιήσετε το πλάτος του μικρότερου sprite ως σημείο εκκίνησης για ένα όριο σύγκρουσης, αλλά μπορείτε να το προσαρμόσετε για να κάνετε τις συγκρούσεις λίγο πολύ πιθανό.

  3. Αναφέρετε την κατάσταση σύγκρουσης.

    Σε αυτό το παράδειγμα, απλά εκτυπώστε "σύγκρουση" ή "όχι σύγκρουση", αλλά σε πραγματικό παιχνίδι, οι συγκρούσεις προκαλούν άλλες ενέργειες: αυξάνοντας το σκορ, μειώνοντας τον αριθμό των ζωών, αλλάζοντας την ταχύτητα ή τη θέση των συγκρουόμενων στοιχείων, ή οτιδήποτε. (Ας ελπίσουμε ότι πρόκειται για εκρήξεις.)

Πώς να προσθέσετε τις συγκρούσεις στο παιχνίδι σας HTML5 - dummies

Η επιλογή των συντακτών

Πώς να δημιουργήσετε Flash CS5 σύμβολα κουμπιών - dummies

Πώς να δημιουργήσετε Flash CS5 σύμβολα κουμπιών - dummies

Για να βελτιώσετε τις ταινίες Adobe Flash Creative Suite 5 μπορούν να χρησιμοποιήσουν τα κουμπιά Flash CS5 για να δώσουν στους χρήστες τον έλεγχο της δράσης με έλεγχο χρόνου και πλοήγηση. Στο Flash, τα κουμπιά είναι ειδικοί τύποι συμβόλων που έχουν σχεδιαστεί για να ανταποκρίνονται σε αλληλεπίδραση με το ποντίκι ή το πληκτρολόγιο, όπως κλικ, ανατροπές και συγκεκριμένα πλήκτρα. Όταν συνδυάζεται με το ActionScript, ...

Πώς να δημιουργείτε κλίσεις στο Adobe Flash CS6 - ανδρείκελα

Πώς να δημιουργείτε κλίσεις στο Adobe Flash CS6 - ανδρείκελα

Adobe Flash CS6 έχει έναν τρόπο για να δημιουργήσετε κλίσεις για να γεμίσετε ένα χώρο που δεν θέλετε να είναι ένα συμπαγές χρώμα. Οι κλίσεις είναι μείγματα μεταξύ δύο ή περισσότερων χρωμάτων που μπορείτε να χρησιμοποιήσετε για να γεμίσετε οποιαδήποτε περιοχή ή σχήμα, ακριβώς όπως ένα συμπαγές χρώμα. Αν κοιτάξετε τον πίνακα Swatches, μπορείτε ...

Η επιλογή των συντακτών

Πώς να γράφετε σημειώσεις στο OneNote 2013 στα Android - ανδρείκελα

Πώς να γράφετε σημειώσεις στο OneNote 2013 στα Android - ανδρείκελα

Το OneNote, όπως οι εκδόσεις iOS και web app, η έκδοση Android του OneNote σάς επιτρέπει να αποκτάτε πρόσβαση και να επεξεργάζεστε σημειώσεις με ένα ελάχιστο σύνολο χαρακτηριστικών σε σύγκριση με τις εκδόσεις desktop του OneNote, όπως το OneNote 2013. Πώς να δημιουργήσετε μια νέα σημείωση στο Android Μπορείτε να δημιουργήσετε ...

2 τρόποι αποστολής και λήψης αλληλογραφίας στο Outlook - ανδρείκελα

2 τρόποι αποστολής και λήψης αλληλογραφίας στο Outlook - ανδρείκελα

Μετά τη διαμόρφωση του λογαριασμού ηλεκτρονικού ταχυδρομείου (S) στο Outlook 2013, η λήψη μηνυμάτων είναι μια αυτόματη διαδικασία. Το Outlook αποστέλλει αυτόματα και λαμβάνει μηνύματα όταν ξεκινάτε και επίσης σε διαστήματα 30 λεπτών (από προεπιλογή) όποτε εκτελείται το Outlook. Η εισερχόμενη αλληλογραφία σας μπαίνει αυτόματα στο φάκελο Εισερχόμενα. Μπορείτε επίσης να ξεκινήσετε μια χειροκίνητη διαδικασία αποστολής / λήψης σε ...

Πώς να γράφετε σημειώσεις στο OneNote 2013 για συσκευές iOS - dummies

Πώς να γράφετε σημειώσεις στο OneNote 2013 για συσκευές iOS - dummies

Για συσκευές IOS. Υπάρχουν πολλές λειτουργίες, παρόλο που η έκδοση του App της OneNote και η πλήρης εφαρμογή OneNote 2013 έχουν περισσότερη λειτουργικότητα. Πώς να δημιουργήσετε μια νέα σημείωση σε συσκευές iOS Μπορείτε να δημιουργήσετε μια νέα σημείωση, ανεξάρτητα από το πού βρίσκεστε στο OneNote, αν βλέπετε ...

Η επιλογή των συντακτών

Πώς να ρυθμίσετε την τοποθέτηση και το μέγεθος στην άκρη Animate - dummies

Πώς να ρυθμίσετε την τοποθέτηση και το μέγεθος στην άκρη Animate - dummies

Adobe Edge Animate CC δεν έχει έλλειψη ρυθμίσεις όσον αφορά την τοποθέτηση και το μέγεθος. Πολλά από αυτά τα χαρακτηριστικά λειτουργούν καλύτερα όταν φωλιάζουν στοιχεία, έτσι θέλετε να κατανοήσετε πώς λειτουργεί ο πίνακας στοιχείων. Η τοποθέτηση αναφέρεται στις συντεταγμένες του στοιχείου που σχετίζεται είτε με το Στάδιο είτε με το γονικό στοιχείο όταν ένα ...

Παγκόσμια ή Εφαρμοσμένες ρυθμίσεις στο Adobe Edge Animate - dummies

Παγκόσμια ή Εφαρμοσμένες ρυθμίσεις στο Adobe Edge Animate - dummies

Adobe Edge Animate CC δεν έχει έλλειψη ρυθμίσεων όταν πρόκειται για την τοποθέτηση και το μέγεθος. Οι ρυθμίσεις "Παγκόσμια" και "Εφαρμοσμένες" δεν τροποποιούν τις ρυθμίσεις, αλλά παρέχουν ένα μέσο για την εμφάνιση της σχετικής τοποθέτησης μεταξύ των ενσωματωμένων στοιχείων. Μπορεί να αναρωτιέστε ότι η διαφορά είναι μεταξύ των ρυθμίσεων Global και Applied. Εδώ είναι η ουσία: Παγκόσμιες ρυθμίσεις ...

Πώς να προσθέσετε ενέργειες σε στοιχεία στο Edge Animate - dummies

Πώς να προσθέσετε ενέργειες σε στοιχεία στο Edge Animate - dummies

Ένα ιδιαίτερα ισχυρό χαρακτηριστικό του Adobe Edge Animate Το CC είναι η δυνατότητα να προσθέσετε στη σύνθεση σας δράσεις, ενεργοποιητές, ετικέτες και χαρακτηριστικά δρομέα. Αυτά τα εργαλεία είναι αυτό που χρησιμοποιείτε για να κάνετε το κινούμενο γραφικό σας διαδραστικό, ώστε το κοινό σας να μπορεί να συμμετέχει σε αυτό που κάνει το κινούμενο σχέδιο σας αντί να πρέπει να καθίσετε εκεί και να παρακολουθήσετε παθητικά. Ένας ...