Βίντεο: Writing 2D Games in C using SDL by Thomas Lively 2024
Εάν ο καμβάς ορίζει το χώρο σε ένα παιχνίδι HTML5, ένας βρόχος κινούμενων εικόνων ορίζει το χρόνο. Τα περισσότερα παιχνίδια JavaScript χρησιμοποιούν ένα μηχανισμό που ονομάζεται setInterval () για να προκαλέσει επαναλαμβανόμενη συμπεριφορά. Αυτή η λειτουργία απαιτεί δύο παραμέτρους: ένα όνομα λειτουργίας και μια τιμή καθυστέρησης.
Ακολουθεί κάποιος κώδικας που μετρά απλά δέκα φορές το δευτερόλεπτο:
μετρώντας. html var counter = 0. var output; συνάρτηση init () {output = document. getElementById ("έξοδος"); setInterval (count, 100);} συνάρτηση count () {counter ++; παραγωγή. innerHTML = μετρητής,} τίποτα εδώ ακόμα
Η διαδικασία είναι απλή και μπορείτε να την χρησιμοποιήσετε οποιαδήποτε στιγμή θέλετε κάτι να συμβεί σε τακτά χρονικά διαστήματα:
-
Δημιουργήστε μια λειτουργία που θα επαναληφθεί.
Σε αυτό το απλοϊκό παράδειγμα, ο αριθμός συνάρτησης () θα καλείται δέκα φορές ανά δευτερόλεπτο.
-
Στον κωδικό αρχικοποίησης, καλέστε setInterval ().
Αυτό θα ρυθμίσει την επαναλαμβανόμενη κλήση στη λειτουργία.
-
Υποδείξτε τη λειτουργία που θα επαναλάβει.
Η πρώτη παράμετρος είναι το όνομα της συνάρτησης που θα επαναληφθεί. Λάβετε υπόψη ότι επειδή επεξεργάζεστε τη συνάρτηση ως μεταβλητή, δεν περιλαμβάνει παρενθέσεις με το όνομα της λειτουργίας.
-
Υποδείξτε την καθυστέρηση.
Η δεύτερη παράμετρος είναι μια τιμή καθυστέρησης σε χιλιοστά του δευτερολέπτου (ένα χιλιοστό του δευτερολέπτου είναι 1/1000 ο ενός δευτερολέπτου). Αυτό το παράδειγμα τρέχει με καθυστέρηση 100 χιλιοστών του δευτερολέπτου, το οποίο είναι 10 καρέ ανά δευτερόλεπτο. Η βιβλιοθήκη simpleGame τρέχει σε 20 καρέ ανά δευτερόλεπτο.
Στο simpleGame, όταν δημιουργείτε μια τάξη Scene, εκτός από τη δημιουργία καμβά, είστε επίσης μέσω της κατηγορίας Scene δημιουργώντας ένα διάστημα που καλεί επανειλημμένα τη μέθοδο update () του παιχνιδιού σας. Αυτός είναι ο λόγος για τον οποίο πρέπει να έχετε μια μέθοδο ενημέρωσης ().