TUS en Diseño de Videojuegos
Ayose Lomba Pérez (LinkedIn)
Universidad del Atlántico Medio
La Programación Orientada a Objetos (POO) es un paradigma que se basa en modelar el mundo real a través de objetos. Piensa en cualquier cosa a tu alrededor: un coche, un personaje en un videojuego o un enemigo en Unity. Cada uno tiene:
Propiedades (atributos): Color, tamaño, vida, daño.
Comportamientos (métodos): Acelerar, atacar, saltar.
Encapsulación: Protege los datos dentro de una clase, evitando modificaciones accidentales.
Herencia: Permite que una clase “herede” atributos y métodos de otra.
Polimorfismo: Un mismo método puede comportarse de manera distinta según la clase.
Abstracción: Oculta detalles innecesarios y expone solo lo esencial.
Los videojuegos están llenos de objetos interactuando entre sí: jugadores, enemigos, ítems, proyectiles… Sin POO, manejar todo esto sería un caos. Con POO, organizamos nuestro código en clases reutilizables y fáciles de mantener.
public class Personaje
{
public string nombre;
public int vida;
public void MostrarVida()
{
Debug.Log("Vida de " + nombre + ": " + vida);
}
}
public class Juego : MonoBehaviour
{
void Start()
{
Personaje jugador = new Personaje();
jugador.nombre = "Link";
jugador.vida = 100;
jugador.MostrarVida();
}
}
–
Modifica la clase Personaje para incluir un método
llamado Atacar() que imprima en consola el mensaje
"¡Link ha atacado!".
–
public class Personaje
{
public string nombre;
public int vida;
public void MostrarVida()
{
Debug.Log("Vida de " + nombre + ": " + vida);
}
public void Atacar()
{
Debug.Log(nombre + " ha atacado!");
}
}
public class Juego : MonoBehaviour
{
void Start()
{
Personaje jugador = new Personaje();
jugador.nombre = "Link";
jugador.vida = 100;
jugador.Atacar();
}
}
Crea una función MostrarBarraDeVida() en la clase
Personaje, que imprima "Vida: [■■■■■■■■■■]" en
función de su salud.
public class Personaje
{
public string nombre;
public int vida;
public void MostrarBarraDeVida()
{
int bloques = vida / 10;
string barra = new string('■', bloques);
Debug.Log("Vida: [" + barra.PadRight(10, ' ') + "]");
}
}
public class Juego : MonoBehaviour
{
void Start()
{
Personaje jugador = new Personaje();
jugador.nombre = "Link";
jugador.vida = 70;
jugador.MostrarBarraDeVida();
}
}
Una clase es un molde que define la estructura y el comportamiento de los objetos.
Un objeto es una instancia de una clase:
Los métodos son acciones que un objeto puede realizar.
Añade un método RecibirDaño(int daño) a la clase
Enemigo que reduzca la salud del enemigo e imprima su nueva
vida.
Crea una nueva clase llamada Arma, con dos atributos:
nombre y daño. Además, crea un método
Disparar().
Permite que una clase derive de otra.
Crea una subclase EnemigoVolador que herede de
Enemigo.