Asignaciones y expresiones en GML
Ya hemos visto que son las variables. Ahora vamos a usar estas variables. Cuando almacenamos un valor a una variable, estamos hablando de asignar un valor. Por ejemplo:
max_size = 5;
Estamos dándole, o cambiándole, a la variable max_size el valor a 5. Otro ejemplo, pero con texto:
name_player = ‘Your name’;
Para el texto podemos usar la comilla simple o la comilla doble. Esto también es válido:
name_player = “Your name”;
Recordemos que aconsejo siempre poner al final “;”.
Pero no solo podemos asignar valores simples. También podemos asignarle expresiones.
¿Qué es una expresión?
Una expresión puede ser un cálculo, por ejemplo:
max_size = 2 + 3;
pero también se puede usar otras variables en las expresiones.
max_size = 2 + a;
o incluso la misma variable, para acumular su valor
max_size = max_size + 2; //el valor que tenía lo incrementamos en 2
Para operaciones aritméticas, podemos usar los símbolos +, – , * y /, pero también paréntesis para dar prioridad. Recordad que esto
a = b * c + d;
no es lo mismo que
a = b * (c + d);
Ante la duda, ¡¡siempre usamos paréntesis!!
Expresiones de incrementar y disminuir un valor
Es muy posible que ya conocieras las expresiones aritméticas. Ahora empezamos a hablar de las expresiones que son más típicas cuando programamos.
Hemos dicho antes para incrementar un valor podemos poner esto
a = a + 1;
Pero en Game Maker, y en muchos lenguajes, podemos escribir esto y hace exactamente lo mismo
a++;
El símbolo ++ se utiliza para incrementar en 1 el valor actual. ¿Os imagináis qué puede hacer el símbolo —? Exacto, disminuir en uno su valor.
Entonces para este ejemplo
max_size = max_size + 2;
¿Como se haría? Existen operadores especiales, que son +=, -=, *= y /=. El ejemplo anterior es equivalente a este:
max_size += 2;
Así que para acumular sumando usamos +=, restando -=, multiplicando *= y dividiendo /=.
Expresiones de comparación
Cuando hagamos condiciones (en sentencias), necesitaremos comparar dos o más valores. Por ejemplo
a < b
Estamos comparando la variable a con la variable b, para ver si a es más pequeña que b. Pueden pasar dos cosas:
- que sea verdad
- o que sea mentira
A partir de ahí ya tomaremos una decisión u otra. Para comparar variables, tenemos los símbolos <, <=, >, >= y ==. Si ya hemos usado algunas acciones de pregunta, hemos visto su equivalencia.
He dejado para el final el símbolo ==. Se utiliza para saber si dos valores son iguales. Recordemos que el símbolo = se utiliza para dar valor a una variable. No es lo mismo
a = b; //ahora a vale lo de b
a == b; //comparamos a con b
Aunque con Game Maker es posible usar = para comparar, yo no lo aconsejo. Debemos saber en todo momento si estamos comparando o estamos dando valor. Al final es cuestión de acostumbrarse y escribirlo correctamente cuando toca.
Expresiones de combinación
Es posible que comparar sólo dos valores nos quedemos cortos, y necesitemos combinarlo con otros valores. Para esto tenemos las expresiones &&, || y ^^, que equivalen a and, or y xor. Siempre combinaremos expresiones de comparación, así que devolverá igualmente true o false. Algunos ejemplos
(a == b) or (b == c)
(a == b) || (b == c)
(a > c) and (c < d)
(a > c) && (c < d)
Como podéis ver, los símbolos or y || son equivalentes, al igual que and y && y xor y ^^.
División y módulo
A la hora de dividir en Game Maker, ya hemos visto que se usa el operador /. Pero también existe otro operador, el div. Este operador lo usaríamos para dividir un número y que nos devolviera siempre un número sin decimales, aunque hagas 18 div 7
(devolvería 2).
También existe otro operador especial, que es el mod. Este operador nos devolvería el resto o residuo de una división. Por ejemplo, 11 mod 3
devuelve 2.
¿Para qué puede servir el operador mod? Por ejemplo, para averiguar si un número es par o no. Si usamos a mod 2
, devolverá 0 si es par o 1 si es impar.
Operadores unarios
Hasta ahora hemos visto que todos los operadores necesitan dos elementos. Tanto si sumamos, restamos o comparamos, lo hacemos siempre con dos valores.
Los operadores unarios son los que no necesitas dos valores para hacer la operación. Son:
- el operador - o negativo. Sirve para cambiar de signo un valor. Estamos acostumbrados a ver un -3, pero podríamos hacerlo en una variable, por ejemplo
a = -b;
- el operador ! o no. Sirve para transformar lo falso a verdadero y lo verdadero a falso. Por ejemplo
!(a < b)
o
!a
Conclusión
Hemos visto las operaciones básicas que se pueden hacer, con números, textos y variables. Ahora ya podemos escribir código GML creando sus variables y hacer las operaciones necesarias.
No he añadido aquí algunos operadores que se usan a nivel de bit, como ~, ya que no creo que en un principio sean necesario utilizarlos.
¿Os ha gustado esta entrada? ¡Preguntad vuestras dudas en los comentarios!