Conexión de Jugador y Coordenadas en Mapas de Videojuegos

Clase 40 de 47Curso 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; }
      Conexión de Jugador y Coordenadas en Mapas de Videojuegos