Programación de Mapas Bidimensionales en Videojuegos
Clase 25 de 47 • Curso Práctico de C++
Contenido del curso
- 13

Entrada y manejo de datos en programas C++
08:49 - 14

Operadores Relacionales y Condicionales en Programación
10:17 - 15

Condicionales y estructuras de control en programación
08:37 - 16

Funciones y Encapsulamiento en Programación
05:44 - 17

Funciones en Programación: Creación y Uso Eficiente
08:49 - 18
Creación de aventuras interactivas con C++ y decisiones de usuario
00:24
- 19

Arreglos: Conceptos Básicos y Manipulación en Programación
08:09 - 20

Estructuras de Control: Bucles en Programación
03:47 - 21

Contadores y Bucles en Programación: While, Do-While y For
10:18 - 22

Arreglos Unidimensionales y Bidimensionales en Programación
10:40 - 23

Dibujar Mapas y Personajes en Juegos con Arreglos en C++
08:13 - 24

Movimiento de Personajes en Juegos con Python
05:38 - 25

Programación de Mapas Bidimensionales en Videojuegos
09:24 - 26
Movimiento de Personajes en Cuatro Direcciones con CIN
00:25
- 30

Programación Orientada a Objetos: Conceptos y Beneficios
03:29 - 31

Programación Orientada a Objetos: Clases e Instancias en Java
07:53 - 32

Encapsulación de Datos en Programación Orientada a Objetos
10:59 - 33

Abstracción en Programación Orientada a Objetos
09:12 - 34

Herencia en Programación Orientada a Objetos: Clases y Constructores
08:23 - 35
Tipos de acceso en la herencia de clases en programación
00:39 - 36

Polimorfismo en C++: Teoría y Práctica
14:36
- 37

Programación de un Juego de Laberinto en C++
09:22 - 38

Controles básicos de movimiento en videojuegos con programación en C++
07:18 - 39

Creación de Clases para Mapas en Juegos de Programación
09:43 - 40

Conexión de Jugador y Coordenadas en Mapas de Videojuegos
11:04 - 41

Carga y Lectura de Archivos para Mapas en Juegos
09:10 - 42

Colisiones y Movimiento en Juegos 2D con C++
09:30 - 43

Colisiones y restricciones de movimiento en mapas de juegos
09:38 - 44

Colisiones y Portadas en Videojuegos: Implementación en C++
07:17 - 45

Creación de Juegos de Aventuras en C++: Laberintos y Cofres del Tesoro
11:16 - 46

Programación Orientada a Objetos en Videojuegos Básicos
00:50 - 47
Creación de Enemigos y Laberintos en C++ Avanzado
01:14
En esta clase debemos crear un mapa (un arreglo bidimensional) con todas las posibles posiciones de nuestro héroe. Esto significa que, además de nuestro ciclo for para imprimir cada posición de nuestra columnas, debemos crear otro ciclo para imprimir las columnas (o al revés).
Además, debemos verificar la posición de nuestro héroe en ambas partes, filas y columnas. La forma más rápida de hacerlo es creando dos nuevas variables, heroPosX y heroPosY, para validar sus posiciones en sus respectivos ciclos.
En reto de esta clase es programar la funcionalidad de que nuestro jugador pueda moverse por todo el mapa, incluyendo hacia arriba y abajo, no solo a la izquierda y a la derecha.
Puntos extra si puedes evitar que el jugador salga del mapa, es decir, que la posición de nuestro héroe no pueda ser menor ni mayor que las posiciones de nuestro arreglo bidimensional.
Código de la clase:
void DrawMap(int HeroPosX, int HeroPosY, char GameMap[5][5]) {
for(int i = 0; i < 5; i++) {
for(int p = 0; p < 5; p++) {
if (i != HeroPosY)
{
cout << GameMap[p][i];
}
else
{
if (i != HeroPosY)
{
cout << GameMap[p][i];
}
else
{
cout << 'H';
}
}
}
// Necesitamos un salto de línea para diferenciar
// las filas de las columnas:
cout << endl;
}
}
int main()
{
// ...
int HeroPosX = 1;
int HeroPosy = 1;
char GameMap[5][5] =
{
{'1','1','1','1','1'},
{'1','1','1','1','1'},
{'1','1','1','1','1'},
{'1','1','1','1','1'},
{'1','1','1','1','1'},
}
// ...
}