Los números reales en GameMaker:Studio son considerados números de punto flotante, es decir que tienen un punto decimal en ellos sin un número fijo de dígitos tanto antes como después
del punto. Por ejemplo el número 2 es un entero binario mientras que 2.0 es un número de punto flotante(real). Esta distinción entre enteros y reales es muy importante cuando se desarrolla para diferentes plataformas ya que la precisión de los cálculos hechos en un pc con Windows no es la misma que la precisión de esos mismos cálculos cuando se hacen en un dispositivo móbil. Eso significa que deberías prestar una atención particular cuando hagas
comparaciones, por ejemplo:
if image_index == 1 {do something...}
A simple vista parece que funciona, pero debido a la manera que las matemáticas de puntos flotantes funcionan, puede significar que image_index en realidad vale 1.00000000001, así que la comparación entre el verdadero resultado y el del código ejecutándose nunca dará resultado. Esos tipos de errores pueden ser bastante difíciles de depurar y por lo que es mejor estar siempre alerta con ellos y planear por adelantado otras maneras de verificar valores o usar las funciones apropiadas de redondeo hacia arriba y abajo enunciadas en esta misma sección) para convertir el número que queremos verificar en un entero. Por ejemplo el código de arriba podría ser escrito como:
if floor(image_index) == 1 {do something...}
Podemos también usar una función especial disponible en GameMaker:Studio para fijar el valor epsilon para matemáticas de punto flotante. Cuando un número real es redondeado al número de punto flotante más cercano,
el epsilon (también conocido como "máquina epsilon") forma una acotación superior del error relativo, y puedes fijar el valor epsilon usando esta función especial:
Las funciones de GameMaker:Studio para trabajar con números reales se dividen en las siguientes categorías:
Todas estas funciones trabajan usando números y valores aleatorios:
NOTA: Cuando se usan las funciones aleatorias, GameMaker:Studio mantiene la misma semilla aleatoria cada vez que corres el juego. Esto hace la depuración más fácil ya que te garantiza que las funciones aleatorias siempre devolverán el mismo valor en tus pruebas, sin embargo no deberías desear que eso sucediera, por lo que deberías fijar una nueva semilla aleatoria al principio del juego, ya sea con randomize o con random_set_seed.
Funciones matemáticas varias: