Cette fonction peut être utilisée pour définir le masque de bits de mosaïque pour tous les tilemaps dans le jeu. L'idée est que si vous avez, par exemple, de jolis petits jeux de tuiles 16 x 16 auront un total de 256 tuiles différentes dans chaque jeu de tuiles, qui utilise seulement 8 bits de votre index dans les données de tuile "blob" (de 19 bits de données disponibles). Ces bits peuvent être "masqués", puis le reste des données de la mosaïque peut être utilisé pour stocker des valeurs supplémentaires.
Un moyen facile d'obtenir la valeur initiale du masque d'index est de prendre le nombre de tuiles dans le jeu de tuiles et de soustraire 1, donc un jeu de tuiles 64x64 a 256 tuiles et une valeur de masque de 255 (ou $ff en hexadécimal) l'ensemble de tuiles a un nombre de tuiles qui n'est pas une puissance de deux, puis arrondi à la puissance la plus proche de deux pour obtenir le masque, par exemple un jeu de tuiles de 20x20 a 400 tuiles que vous arrondiriez à 512, et alors obtenez une valeur d'index de masque de 511 ( $1ff en hexadécimal). En dehors du masque d'index, normalement vous voudriez conserver les valeurs de retournement, de rotation et de miroir qui sont assignées à une tuile aussi, ainsi pour aider à cela il y a quelques constantes qui peuvent être utilisées. Ceux-ci peuvent être "ou" associés à la valeur du masque d'index pour préserver ces bits de données. Les constantes suivantes peuvent être utilisées (voir l'exemple de code ci-dessous pour l'utilisation):
Constant La description tile_rotate Utilisé pour définir / obtenir le bit de rotation d'un blob de données de tuile. tile_mirror Utilisé pour définir / obtenir le bit miroir d'un blob de données de tuile. tile_flip Utilisé pour définir / obtenir le bit de bascule d'un blob de données de tuile. tile_index_mask Une constante spéciale pour "et" -ing avec le blob de données de mosaïque pour extraire l'index de mosaïque.
Le masquage de bit de Tilemap est une fonctionnalité avancée et vous permet d'utiliser des bits des données de tuile "blob" pour votre usage personnel. Par exemple, l'utilisateur peut réserver un peu pour signifier "solide" dans la structure de tiledata, et cela peut être vérifié pour des collisions rapides. Fondamentalement, le masque de bits est "et" contre les données de la mosaïque lorsque le tilemap est dessiné (donc cela n'affecte aucune des autres fonctionnalités), ce qui signifie que les bits qui ne sont pas dans le masque sont ignorés, mais peuvent toujours être lu et écrit par l'utilisateur à ses propres fins. Notez qu'il existe deux masques différents - un global et un par tilemap - et ils sont "et" ensemble en interne par GameMaker Studio 2 avant d'être utilisés pour le dessin.
tilemap_set_global_mask(mask)
Argument La description mask La valeur de masque à utiliser
N/A
var mask = tile_mirror | tile_flip | tile_rotate |
255;
tilemap_set_global_mask(mask);
Le code ci-dessus définit le masque de bit de plan de joint global sur 8 bits, en conservant les valeurs de retournement, de miroir et de rotation pour chaque pavé de la carte.