Introducción a C++

1

Todo lo que aprenderás sobre C++

2

¿Qué es programar y por qué aprender C++?

Conceptos Generales de C++

3

La Historia de C++ y sus diferencias con C

Preparando el entorno de trabajo

4

Instalando Codeblocks

5

Pasos para instalar en mac

6

Ejecutando nuestro primer programa

7

¿Qué son las librerías STD? - Portada del Proyecto

Manejo de memoria

8

¿Qué es la memoria y tipos de datos?

9

Alojando variables en memoria

10

¿Cómo usar operadores?

11

¿Qué son los apuntadores?

12

Reto: Escribir un programa que calcule áreas.

Entrada de datos y funciones

13

¿Cómo introducir datos a nuestro programa?

14

¿Cómo usar condicionales?

15

Usando condicionales

16

¿Cómo encapsular código en funciones ?

17

¿Qué son los parámetros y como usarlos?

18

Reto: Juego narrativo implementando condicionales y entrada de datos.

Loops y arreglos

19

¿Qué son los arreglos?

20

¿Qué son los Loops?

21

Programando Loops

22

Loops , arreglos y arreglos bidimensionales

23

Dibujando el mapa de nuestro juego con arreglos

24

Manipulando mi jugador con inputs en arreglos unidimensionales

25

Arreglos bidimensionales

26

Reto: Moviendo a mi personaje en mi arreglo bidimensional

Lectura de Archivos

27

Creando y leyendo un archivo externo

28

Leyendo archivos externos

29

Reto: En el mapa, crear punto de inicio y salida del jugador

Programación Orientada a Objetos

30

¿Qué es POO?

31

Definiendo una clase y creando sus instancias

32

Encapsulación

33

Abstracción

34

Herencia

35

Propiedades de clase en herencia

36

Polimorfismo

Finalizando nuestro proyecto

37

Creación de personaje y archivo de encabezado

38

Moviendo mi personaje con entrada de datos

39

Mapa

40

Interacción entre el personaje y el mapa

41

Paredes

42

Optimizando trazado de mapa

43

Colisiones

44

Creando nuestra portada de juego

45

Tesoro y victoria

46

Conclusiones

47

Proyecto final

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

No se trata de lo que quieres comprar, sino de quién quieres ser. Aprovecha el precio especial.

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

15 Días
23 Hrs
11 Min
1 Seg

Interacción entre el personaje y el mapa

40/47
Recursos

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;
}

Aportes 18

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Éste es el proceso si no quieren mover las variables X y Y de ser protected, y seguir manteniendo las buenas prácticas 😛

Primero declaran como públicas las dos funciones de tipo entero, yo las nombre XAxis() y YAxis(), pero le pueden poner como gusten, esto es en Player.h

Después en Player.cpp declaramos su funcionalidad, que en este caso solo nos regresarían el entero.

Y al final utilizamos nuestras funciones creadas en main.cpp

Espero que les haya servido! 😎

8:19 JAJA no es un bug es una feature
Acabas de crear un snake, felicidades (?

Hasta el momento la clase más complicada, pero nada que la práctica no ayude.

Esta clase me hubiera servido en mi primer semestre en la carrera 😦
Tuve que buscar muchos vídeos en youtube para entenderle.

IMPORTANTE Podemos en vez de cambiar las variables int x, int y, a publicas, podriamos manipularlas mediante a puntero y trabajaria de la misma forma

Me estallo la cabeza ver ese array de tipos funcionando, ya que es normal declarar un `Obj obj`, pero nunca había visto un `Obj obj[15][10]`, que loco viejo. Y pensar que baca `obj[n][n]` tiene sus propiedad como `id`, esta tripiante hermano.

🤯

Tengo un problema, cuando se hace el dibujo del mapa, me aparecen 2 jugadores, los dos se mueven. He estado buscando el error pero aun no se que puede ser ¿Alguien me puede ayudar?

Luego de unos minutos logré entender el error, ya estoy entendiendo mejor, es bastante complejo el juego con las clases.

Probando

perdona pero me perdi en el .id despues del arreglo bidimensional, eso no lo vimos en clases pasadas, asumo que es un apuntador? no era igua a cero?

Como solución alternativa, antes del minuto 8:40, basta con hacer que lo que contenga el puntero PlayerCell sea 0 antes de cambiarlo a su nuevo valor.

void GameMap::SetPlayerCell (int PlayerX, int PlayerY)
{
    PlayerCell -> id = 0;
    PlayerCell = &Cells[PlayerX][PlayerY];
    PlayerCell -> id = 3;
}```

Toca repetir varias veces el video para entenderlo, pero todo bien

Hecho !!

#include <iostream>
#include "Player.h"
#include "Mapaceldas.h"
#include "Gamemapa.h"

using namespace std;

int main()
{
 cout << "inicaia el juego" <<endl;
    bool isGameOver = false;
    Player heroe;
    Gamemapa MAP;
    heroe.entrada();


     while(isGameOver==false)
    {
       // loop de nuestro juego. cada vuelta del loop de nuestro juego vamos aa llamar el heroe.
        heroe.entrada();
        //actulizado de informacion heroe a mapa
        MAP.setplayer(heroe.x , heroe.y);
        //aqui dibujamos el mapa
        MAP.drawmap();


    }



    return 0;
}

->: Es usado para entrar a los parametros de un objeto, cuando se utiliza una variable de tipo apuntador *

Es el mejor proyecto final en un curso de Platzi que he seguido. Gracias por tanto, Eri!

gracias!