Conexión de Jugador y Coordenadas en Mapas de Videojuegos
Clase 40 de 47 • Curso Práctico de C++
Resumen
Vamos a crear la función SetPlayerCell
dentro de nuestra clase GameMap
para dibujar y volver a dibujar el mapa cada vez que el jugador presiona una tecla para cambiar su posición y moverse por el mapa. Vamos a usar apuntadores para cambiar la celda con la posición del jugador por una instancia de la clase PlayerCell
con un caracter diferente (por ejemplo, un 3
):
// GameMap.h
class GameMap
{
public:
GameMap();
MapCell* PlayerCell;
MapCell cells[15][10];
void Draw();
void SetPlayerCell(int PlayerX, int PlayerY);
}
// GameMap.cpp
GameMap::GameMap()
{
PlayerCell = null;
}
void GameMap::SetPlayerCell(int PlayerX, int PlayerY)
{
PlayerCell = &cells[PlayerY][PlayerX];
PlayerCell->id = 3;
}
Además, vamos a solucionar el error de dejar el rastro de posiciones por las que el jugador pasó en movimientos anteriores. Vamos a volver a dejarlas como celdas o espacios normales con el siguiente código:
if (PlayerCell != NULL) {
PlayerCell->id = 0;
}