Les nombres réels dans GameMaker Studio 2 sont considérés comme des nombres à virgule flottante double précision, c'est-à-dire qu'ils ont un point décimal sans nombre fixe de chiffres avant ou après le point. 2, par exemple, est un entier binaire mais 2.0 est un réel à virgule flottante. Cette distinction entre les entiers et les flottants est très importante dans le cas du développement multiplateforme, car la précision des calculs effectués sur un PC sous Windows n'est pas la même que la précision de ces mêmes calculs lorsqu'ils sont effectués sur un appareil mobile. Cela signifie que vous devez faire particulièrement attention lors des comparaisons, par exemple:
if image_index == 1 {do something...}
Maintenant, cela peut sembler fonctionner, mais en raison de la façon dont les maths en virgule flottante fonctionnent, cela peut signifier que image_index est en fait égal à 1.00000000001, auquel cas la comparaison ne donnera jamais true résultat et le code en cours d'exécution. Ces types d'erreurs peuvent être assez difficiles à déboguer et il est donc toujours bon de les connaître et de planifier à l'avance et d'utiliser d'autres moyens de vérifier les valeurs ou d'utiliser les fonctions de revêtement de sol ou d'arrondi appropriées vérifier dans un nombre entier. Par exemple le code ci-dessus pourrait être écrit comme:
if floor(image_index) == 1 {do something...}
Il convient également de noter que lorsque vous utilisez les cibles du compilateur YoYo, toutes les expressions et fonctions sont évaluées de gauche à droite, tandis que sur toutes les autres plateformes cibles, elles sont évaluées de droite à gauche, ce qui donne des résultats différents selon Sur la plateforme:
val = max(num, ++num, num++);
Vous pouvez également utiliser une fonction spéciale disponible dans GameMaker Studio 2 pour définir la valeur epsilon pour les calculs en virgule flottante. Lorsqu'un nombre réel est arrondi au nombre à virgule flottante le plus proche, l'epsilon (également appelé «machine epsilon») forme une limite supérieure de l'erreur relative et vous pouvez définir la valeur epsilon à l'aide de cette fonction spéciale:
Nous pouvons diviser les fonctions que GameMaker Studio 2 a pour gérer les nombres réels dans les catégories suivantes:
Ces fonctions traitent toutes de l'utilisation de nombres et de valeurs aléatoires:
NOTE: Lorsque vous utilisez les fonctions aléatoires, GameMaker Studio 2 conserve la même graine aléatoire chaque fois que vous lancez la partie. Cela rend le débogage beaucoup plus facile car vous êtes assuré que les fonctions aléatoires retourneront toujours la même valeur, mais si vous ne souhaitez pas que cela se produise, vous devez d'abord définir une nouvelle graine aléatoire au tout début du jeu, soit en utilisant randomise ou random_set_seed.
Ce sont toutes des fonctions trigonométriques:
Ce sont toutes les fonctions qui arrondissent ou sélectionnent les valeurs: