Funciones
Si alguna vez te has preguntado cómo es que un videojuego maneja todo el código, habilidades, objetos, etc. las funciones son la respuesta.
Una función es un bloque de código bajo un nombre específico que realiza una tarea y puede ser reutilizado en diferentes partes del programa, permitiendo organizar el código en bloques más pequeños y manejables.
Si eres un jugador casual seguramente identifiques muchas de las funciones principales que puede tener tu personaje: saltar, disparar, correr, llorar, etc. Todo esto es código que puede ser reutilizado en diferentes partes del programa bajo circunstancias específicas simplemente mandando a "llamar" dicha función.
El concepto "llamar" se refiere a ejecutar la función, es decir, ejecutar el código que se encuentra dentro de la función. Veamos primero un ejemplo básico de cómo se crea una función:
1funcion moverse() {2// Código para moverse3}
El código anterior se encarga de moverse cada vez que se llame a la función moverse(). Si viéramos el código principal del juego, seguramente se vería como el siguiente:
1funcion main() {23if(jugador presiona tecla de derecha, izquierda, arriba o abajo) {4moverse();5}67}
¿Vas entendiendo por donde va la cosa? Lo anterior significa que cada vez que nosotros escribamos moverse() va a ejecutar la instrucción moverse que definimos con anterioridad, sin embargo te preguntarás, ¿Mi pequeño Isaac cómo va a saber a qué lado moverse?, fácil, vamos a necesitar de pasarle parámetros a nuestra función.
Un parámetro es una variable que se utiliza en las funciones para definir un comportamiento específico.
1funcion moverse(velocidad, direccion) {2// Mueve el personaje a la velocidad y dirección especificada3}
Como puedes observar, podemos envíar cualquier tipo de parámetro a nuestra función para que utilice esos datos para realizar la instrucción.
Vamos a crear una función nueva como usar bomba para que vayas entendiendo como es la estructura de un código de videojuegos.
1// Definimos nuestras funciones23funcion moverse(velocidad, direccion) {4// Código para moverse en la dirección especificada5}67funcion usarBomba() {8// Código para usar bomba9}1011funcion main() {1213// Los videojuegos son un ciclo infinito que se repite mientras no perdamos la partida14// así que primero vamos a definir el ciclo principal1516variable velocidad = 5;1718while(jugador no ha perdido) {1920if(jugador presiona tecla "derecha") {21moverse(velocidad, "derecha");22}2324if(jugador presiona tecla "izquierda") {25moverse(velocidad, "izquierda");26}2728if(jugador presiona tecla "arriba") {29moverse(velocidad, "arriba");30}3132if(jugador presiona tecla "abajo") {33moverse(velocidad, "abajo");34}3536if(jugador presiona tecla de usar bomba) {37usarBomba();38}3940}4142// Cuando el jugador pierde, el juego termina4344}45
¡Woah!, cada vez esto va tomando más forma, ¿no?, hasta ahora hemos aplicado en esta clase ciclos, condiciones y funciones para desarrollar un pseudocódigo de cómo se vería un videojuego.
Este tema es el final para que entiendas los conceptos básicos de la programación, ahora es momento de que empieces a programar en un lenguaje de programación real.
¿Listo para empezar?
Curse of Coding
