RECUERDA SEGUIRNOS


Suscríbete a nuestro canal Síguenos en Dailymotion Síguenos en Facebook  Síguenos en Twitter Síguenos en Instagram Síguenos en TikTok Unete a nuestro Discord Síguenos en Kwai Síguenos en Linkedin Escríbenos a nuestro WhatsApp Síguenos en Telegram Síguenos en Twitch Suscríbete a tu sitio web

SECCIONES PRINCIPALES DE APRENDIZAJE

Nuestros Videojuegos

Descubre aquí el procedimiento y la finalización de nuestros Videojuegos, los cuales te servirán como guía.

Gran Presentación

Conoce todo lo que aprenderás en este gran viaje de desarrollo de Videojuegos con Estacion Racso.

Programación

Aprende a programar en C++, Java y C#, tres de los lenguajes mas usados para el desarrollo de VideoJuegos.

Guía Completa

Accede a la mega guía completa de desarrollo de VideoJuegos que tenemos preparada para ti.

Haciendo un Videojuego en SOLO 3 HORAS SIN MOTOR (EL GRAN RETO)


Prepárate muy bien porque estamos a punto de cumplir el gran reto de hacer todo un Videojuego en tan solo 3 horas y sin utilizar ningún motor, entonces, ¿Será que lo vamos a lograr o no?, pues solo hay una forma de saberlo, así que no le demos tantas vueltas y arranquemos, pero de una vez:


Aunque Javier tiene experiencia programando juegos de un día para otro, la verdad es que nunca ha hecho uno contra reloj, y menos en tan solo 3 horas como tenía que hacerlo en este caso, entonces, nos tocó irnos de una por lo clásico, por eso se realizó un jueguito de una navecita sencillito, así al porte de los años 80's

Clasico Videojuego: Galaxian, del año 1979
Clasico Videojuego: Galaxian, del año 1979

Y es, porque en teoría relativamente es fácil de hacer, solo se necesitaba la nave, las balas, y los asteroides que fueran cayendo, aunque bueno, probablemente te hayas preguntando, ¡Y bueno!, si no se utilizó ningún motor, si no se usó ni Unity, ni Unreal Engine, ni Godot, ni Gamemaker, ni nada de eso, ¿Entonces cómo Javier realizó los gráficos del juego?, pues la verdad es que aunque C++ tiene varias librerías de gráficos como por ejemplo: SDL, libGDX, raylib, Allegro y muchas más, a pesar de todo no se usó ninguna, precisamente porque no se contaba con tiempo suficiente, entonces, para poder desarrollar el juego lo más rápido que se pudiera, se realizó en la clásica consola de código

Juego realizado en la clásica consola de código
Juego realizado en la clásica consola de código

pero al hacer eso se tiene una desventaja, y es que, solo se puede correr el juego en un computador y no en ningún dispositivo móvil, entonces hay nos estábamos limitando, ¡Pero bueno, no importa con tal de haber cumplido el gran reto!, pero sabes algo también muy bacano, es que todo el código que Javier digitó para el desarrollo del juego te lo dejamos publicado en nuestro sitio web para que lo analices o si quieren lo copias y lo pegas en tu IDE, sin importar el que sea, y puedas tú también jugarlo, pero si no eres programador o programadora, no importa, porque también esta público el botón para que descargues el ejecutable juego, ¡Esperamos lo disfrutes mucho!.

Copiar
CODIGO JUEGO
#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
#include <windows.h>
#include <list>

#define ARRIBA 72
#define ABAJO 80
#define DERECHA 77
#define IZQUIERDA 75
#define ENTER 13
#define ESPACIO 32

void intro();
void colorLetras (int);
void ocultarCursor();
void gotoxy (int, int);
int menuInicio();
void bannerJuego();
void marcoMenu();
void opcionesMenu();
void animacionCargando();
void letreroFinDelJuego();
void instrucciones();
void animacionSaliendo();

using namespace std;

class Juego
{
	private:
		int xNave;
		int yNave;
		short int velocidad;
		short int vidas;
	
	public:		
		Juego (int xNave, int yNave)
		{
			this->xNave = xNave;
			this->yNave = yNave;
			this->velocidad = 3;
			this->vidas = 5;
		}
		
		void pintarNave();
		void moverNave();
		void borrarNave();
		void animacionExplosion();
		void pintandoMarcoJuego();
		void pintandoVidas();
		void restandoVidas();
		bool gameOver();
		int getXNave();
		int getYNave();
		int getVidas();
		void setVidas(int);
};

void Juego::pintarNave()
{
	colorLetras (10);
	gotoxy (xNave, yNave);       cout << "  " << char(220);
	gotoxy (xNave, yNave + 1); cout << char(219) << char(219)<< char(219) << char(219) << char(219);
}

void Juego::borrarNave()
{
	colorLetras (10);
	gotoxy (xNave, yNave);       cout << "     ";
	gotoxy (xNave, yNave + 1); cout << "     ";
}

void Juego::moverNave()
{
	if (kbhit())
	{
		borrarNave();
		
		char tecla = getch();
		
		if (tecla == DERECHA && xNave < 67)
		{
			xNave += velocidad;
		}
		
		if (tecla == IZQUIERDA && xNave > 8)
		{
			xNave -= velocidad;
		}
		
		if (tecla == ARRIBA && yNave > 4)
		{
			yNave --;
		}
		
		if (tecla == ABAJO && yNave < 21)
		{
			yNave ++;
		}
		
		pintarNave();
	}
}

void Juego::pintandoMarcoJuego()
{
	colorLetras (11);
	//Pintando las lineas de superiores e inferiores
	for (int i = 6; i < 74; i ++)
	{
		gotoxy (i, 3);  cout << char (205);
		gotoxy (i, 23); cout << char (205);
	}
	
	//Pintando las lines de derecha e izquierda
	for (int i = 4; i < 23; i ++)
	{
		gotoxy (5, i);  cout << char (186);
		gotoxy (74, i); cout << char (186);
	}
	
	//Pintando el borde superior izquierdo
	gotoxy (5, 3); cout << char (201);
	
	//Pintado el borde inferior izquierdo
	gotoxy (5, 23); cout << char (200);
	
	//Pintado el borde superior derecho
	gotoxy (74, 3); cout << char (187);
	
	//Pintado el borde inferior derecho
	gotoxy (74, 23); cout << char (188);
}

void Juego::pintandoVidas()
{
	colorLetras (11);
	
	if (vidas == 5)
	{
		cout << "Vidas " << char (3) << char (3) << char (3) << char (3) << char (3);
	}
	
	else if (vidas == 4)
	{
		cout << "Vidas " << char (3) << char (3) << char (3) << char (3);
	}
	
	else if (vidas == 3)
	{
		cout << "Vidas " << char (3) << char (3) << char (3);
	}
	
	else if (vidas == 2)
	{
		cout << "Vidas " << char (3) << char (3);
	}
	
	else if (vidas == 1)
	{
		cout << "Vidas " << char (3);
	}
}

void Juego::restandoVidas()
{
	vidas --;
}

bool Juego::gameOver()
{
	if (vidas <= 0)
	{
		return true;
	}
	
	else
	{
		return false;
	}
}

void Juego::animacionExplosion()
{
	gotoxy (xNave, yNave);     cout << " *** ";
	gotoxy (xNave, yNave + 1); cout << " *** ";
	
	Sleep (200);
	
	gotoxy (xNave, yNave);     cout << "*****";
	gotoxy (xNave, yNave + 1); cout << "*****";
	
	Sleep (200);
	
	gotoxy (xNave, yNave);     cout << " *** ";
	gotoxy (xNave, yNave + 1); cout << " *** ";
	
	Sleep (200);
	
	gotoxy (xNave, yNave);     cout << "*****";
	gotoxy (xNave, yNave + 1); cout << "*****";
	
	Sleep (200);
	
	gotoxy (xNave, yNave);     cout << " *** ";
	gotoxy (xNave, yNave + 1); cout << " *** ";
	
	Sleep (200);
	
	gotoxy (xNave, yNave);     cout << "*****";
	gotoxy (xNave, yNave + 1); cout << "*****";
	
	Sleep (200);
	
	gotoxy (xNave, yNave);     cout << " *** ";
	gotoxy (xNave, yNave + 1); cout << " *** ";
	
	Sleep (200);
	
	gotoxy (xNave, yNave);     cout << "*****";
	gotoxy (xNave, yNave + 1); cout << "*****";
	
	Sleep (200);
	
	gotoxy (xNave, yNave);     cout << " *** ";
	gotoxy (xNave, yNave + 1); cout << " *** ";
	
	Sleep (200);
	
	gotoxy (xNave, yNave);     cout << "     ";
	gotoxy (xNave, yNave + 1); cout << "     ";
	
	Sleep (200);
}

int Juego::getXNave()
{
	return xNave;
}

int Juego::getYNave()
{
	return yNave;
}

void Juego::setVidas (int reinicioVidas)
{
	vidas = reinicioVidas;
}

int Juego::getVidas()
{
	return vidas;
}

class Disparo
{
	private:
		int xDisparo;
		int yDisparo;
		
	public:
		Disparo (int xDisparo, int yDisparo)
		{
			this->xDisparo = xDisparo;
			this->yDisparo = yDisparo;
		}
		
		void movimientoDisparo();
		bool limiteDisparo();
		int getXDisparo();
		int getYDisparo();	
};

void Disparo::movimientoDisparo ()
{
	colorLetras (15);
	gotoxy (xDisparo, yDisparo); cout << " ";
	
	yDisparo --;
	
	gotoxy (xDisparo, yDisparo); cout << "|";
}

bool Disparo::limiteDisparo()
{
	if (yDisparo <= 4)
	{
		return true;
	}
	
	else
	{
		return false;
	}
}

int Disparo::getXDisparo()
{
	return xDisparo;
}

int Disparo::getYDisparo()
{
	return yDisparo;
}

class Piedras
{
	private:
		int xAsteroide;
		int yAsteroide;
	
	public:
		Piedras (int xAsteroide, int yAsteroide)
		{
			this->xAsteroide = xAsteroide;
			this->yAsteroide = yAsteroide;
		}
		
		void pintarAsteroide();
		void asteroideCayendo();
		void animacionDestruccionAst();
		void colision (Juego *&);				
		int getXAsteroide();
		int getYAsteroide();		
};

void Piedras::pintarAsteroide()
{
	gotoxy (xAsteroide, yAsteroide); cout << char (219);
}

void Piedras::asteroideCayendo()
{
	colorLetras (14);
	
	gotoxy (xAsteroide, yAsteroide); cout << " ";
	
	yAsteroide ++;
	
	if (yAsteroide > 22)
	{
		xAsteroide = 6 + rand() % (68);
		yAsteroide = 4;
	}
	
	pintarAsteroide();
}

void Piedras::animacionDestruccionAst()
{
	colorLetras (1);
	
	gotoxy (xAsteroide - 1, yAsteroide);     cout << "***";
	gotoxy (xAsteroide - 1, yAsteroide + 1); cout << "***";
	
	Sleep (90);
	gotoxy (xAsteroide - 1, yAsteroide);     cout << "   ";
	gotoxy (xAsteroide - 1, yAsteroide + 1); cout << "   ";
	
	Sleep (90);
	gotoxy (xAsteroide - 1, yAsteroide);     cout << "***";
	gotoxy (xAsteroide - 1, yAsteroide + 1); cout << "***";
	
	Sleep (90);
	gotoxy (xAsteroide - 1, yAsteroide);     cout << "   ";
	gotoxy (xAsteroide - 1, yAsteroide + 1); cout << "   ";
	
	Sleep (90);
	gotoxy (xAsteroide - 1, yAsteroide);     cout << "***";
	gotoxy (xAsteroide - 1, yAsteroide + 1); cout << "***";
	
	Sleep (90);
	gotoxy (xAsteroide - 1, yAsteroide);     cout << "   ";
	gotoxy (xAsteroide - 1, yAsteroide + 1); cout << "   ";
}

void Piedras::colision (Juego *&nave)
{
	if (xAsteroide >= nave->getXNave() - 1 && xAsteroide <= nave->getXNave() + 5 &&
	    yAsteroide >= nave->getYNave() && yAsteroide <= nave->getYNave() + 1)
	    {
	    	xAsteroide = 6 + rand() % (68);
		    yAsteroide = 4;
	    	nave->borrarNave();
	    	gotoxy (xAsteroide, yAsteroide); cout << " ";

	    	nave->restandoVidas();
	    	Beep (500, 100);
	    	system ("color 4");
	    	nave->animacionExplosion(); 	    		
			
			system ("cls");			    
		    nave->pintandoMarcoJuego();
		    nave->pintarNave();
		}
}

int Piedras::getXAsteroide()
{
	return xAsteroide;
}

int Piedras::getYAsteroide()
{
	return yAsteroide;
}

int main()
{
	system ("title SPACE GAME");
	
	ocultarCursor();
	intro();
	
	system ("cls");
	
	bool repetirMenu = true;
	bool finDelJuego = false;
	int eleccion;
	int puntuacion = 0;
	int cantidadAsteroides = 3;
	int xNaveInicial = 35;
	int yNaveInicial = 21;	
	
	Juego* nave = new Juego (xNaveInicial, yNaveInicial);
	
	list<Piedras*> asteroide;
	list<Piedras*>::iterator iteAst;	
	
	list<Disparo*> bala;
	list<Disparo*>::iterator ite;
	
	for (int i = 0; i < cantidadAsteroides; i ++)
	{
		asteroide.push_back (new Piedras (6 + rand() % (68), 4));
	}			
	
	do
	{
		system ("cls");
				
		eleccion = menuInicio();
		
		switch (eleccion)
		{
			case 1: system ("cls");
			
					animacionCargando();
					
					system ("cls");	
									
					nave->pintarNave();
					nave->pintandoMarcoJuego();					
					
					Beep (500, 200);					
					
					while (finDelJuego == false)
					{
						gotoxy (60, 2); nave->pintandoVidas();
						gotoxy (7, 2); cout << "Puntos " << puntuacion;						
												
						if (kbhit())
						{
							char tecla = getch();
							
							if (tecla == ESPACIO)
							{
								bala.push_back (new Disparo (nave->getXNave() + 2, nave->getYNave()));								
							}
						}					
						
						//Codigo para los disparos
						for (ite = bala.begin(); ite != bala.end(); ite ++)
						{
							(*ite)->movimientoDisparo();
							nave->pintarNave();
							
							if ((*ite)->limiteDisparo() == true)
							{
								gotoxy ((*ite)->getXDisparo(), (*ite)->getYDisparo()); cout << " ";
								
								//Codigo para eliminar las balas
								delete (*ite);
								//Codigo para eliminar la siguiente bala							
								ite = bala.erase (ite);																		
							}							
							
						}						
						
						for (iteAst = asteroide.begin(); iteAst != asteroide.end(); iteAst ++)
						{
							(*iteAst)->asteroideCayendo();
							(*iteAst)->colision (nave);						
						}
						
						//Codigo para eliminar los asteroides cuando hay colision
						for (iteAst = asteroide.begin(); iteAst != asteroide.end(); iteAst ++)
						{
							for (ite = bala.begin(); ite != bala.end(); ite ++)
							{
								if ((*iteAst)->getXAsteroide() == (*ite)->getXDisparo()
								     && ((*iteAst)->getYAsteroide() + 1 == (*ite)->getYDisparo()
									 || (*iteAst)->getYAsteroide() == (*ite)->getYDisparo()))
									 {
									 	gotoxy ((*ite)->getXDisparo(), (*ite)->getYDisparo()); cout << " ";
									 	delete (*ite);
									 	ite = bala.erase (ite);
									 	
									 	asteroide.push_back (new Piedras (6 + rand() % (68), 4));
									 	
									 	gotoxy ((*iteAst)->getXAsteroide(), (*iteAst)->getYAsteroide()); cout << " ";
									 	(*iteAst)->animacionDestruccionAst();
									 	delete (*iteAst);
									 	iteAst = asteroide.erase (iteAst);
									 	
										puntuacion += 10;									
										
										//Codigo para aumentar los asteorides										
										if (puntuacion == 30 || puntuacion == 60 || puntuacion == 90 || puntuacion == 120 || puntuacion == 150
										    || puntuacion == 180 || puntuacion == 210 || puntuacion == 240 || puntuacion == 270 || puntuacion == 300)
										{
											asteroide.push_back (new Piedras (6 + rand() % (68), 4));
											(*iteAst)->asteroideCayendo();																																
										}
										
																																																														
									 }																 					 	
									 	
							}
						}
						
						nave->moverNave();										
												
						Sleep (30);
						
						if (nave->gameOver() == true)
						{																				
							finDelJuego = true;																																		
						}																		
					}					
										
					system ("cls");					
					Beep (500, 400);				
					letreroFinDelJuego();
					
					colorLetras (10);
					cout << endl;
					cout << "\t\t\tPUNTUACION FINAL: " << puntuacion << endl;
					
					//Codigo para reniciar el bucle del juego
					if (nave->getVidas() == 0)
					{
						finDelJuego = false;
						nave->setVidas(5);
						puntuacion = 0;
						xNaveInicial = 35;
	 					yNaveInicial = 21;						
						
						//Codigo para resetear los asteroides
						for (iteAst = asteroide.begin(); iteAst != asteroide.end(); iteAst ++)
						{							
							delete (*iteAst);
							iteAst = asteroide.erase (iteAst);
						}
						
						asteroide.push_back (new Piedras (6 + rand() % (68), 4));
						asteroide.push_back (new Piedras (6 + rand() % (68), 4));																		
					}																					
			break;
			
			case 2: system ("cls");
					instrucciones();
					cout << endl;
					
					colorLetras (15);
					cout << "\t\t\tPresione cual tecla para regresar..." << endl;
			break;			
			
			case 3: system ("cls");
			 		animacionSaliendo();
			 		
			 		cout << endl;			 		
					exit (1);									
			break;
		}	
		
		cout << endl << endl;
		system ("pause>nul");		
		
	} while (repetirMenu == true);
	
	delete nave;
	
	getch();
	return 0;
}

void intro()
{
	cout << endl << endl;
	colorLetras (10);
	Beep (300, 200);
		 	                                                  
	cout << "\t######  ####  #####   ##    ####  #  ####  #    #" << endl; 
	cout << "\t#      #        #    #  #  #    # # #    # ##   #" << endl; 
	cout << "\t#####   ####    #   #    # #      # #    # # #  #" << endl; 
	cout << "\t#           #   #   ###### #      # #    # #  # #" << endl; 
	cout << "\t#      #    #   #   #    # #    # # #    # #   ##" << endl;
	cout << "\t######  ####    #   #    #  ####  #  ####  #    #" << endl;
	
	cout << endl;
	
	Sleep (500);
	Beep (300, 100);	
	
	colorLetras (14);
	
	cout << "\t\t#####    ##    ####   ####   ####" << endl;  
	cout << "\t\t#    #  #  #  #    # #      #    #" << endl; 
	cout << "\t\t#    # #    # #       ####  #    #" << endl; 
	cout << "\t\t#####  ###### #           # #    #" << endl; 
	cout << "\t\t#   #  #    # #    # #    # #    #" << endl; 
	cout << "\t\t#    # #    #  ####   ####   ####" << endl; 
	
	cout << endl; 
	
	Sleep (400);
	
	colorLetras (7);
	
	gotoxy (26, 17); cout << "PRESENTA";
	
	Sleep (400);
	gotoxy (26, 17); cout << "PRESENTA.";
	
	Sleep (400);
	gotoxy (26, 17); cout << "PRESENTA..";
	
	Sleep (400);
	gotoxy (26, 17); cout << "PRESENTA...";  
	
	Sleep (400);
	gotoxy (26, 17); cout << "PRESENTA   ";
	
	Sleep (400);
	gotoxy (26, 17); cout << "PRESENTA."; 
	
	Sleep (400);
	gotoxy (26, 17); cout << "PRESENTA..";
	
	Sleep (400);
	gotoxy (26, 17); cout << "PRESENTA..."; 
	
	Sleep (400);
	gotoxy (26, 17); cout << "PRESENTA   ";
	
	Sleep (400);
	gotoxy (26, 17); cout << "PRESENTA."; 
	
	Sleep (400);
	gotoxy (26, 17); cout << "PRESENTA..";
	
	Sleep (400);
	gotoxy (26, 17); cout << "PRESENTA...";                                           
}

void colorLetras (int numeroColor)
{
	HANDLE hConsole = GetStdHandle( STD_OUTPUT_HANDLE );
 	SetConsoleTextAttribute(hConsole, numeroColor);
}

void gotoxy (int x, int y)
{
	HANDLE hCon;
	COORD dwPos;
	
	dwPos.X = x;
	dwPos.Y = y;
	
	hCon = GetStdHandle (STD_OUTPUT_HANDLE);
	SetConsoleCursorPosition (hCon, dwPos);
}

void ocultarCursor()
{
	HANDLE hCon;
	hCon = GetStdHandle (STD_OUTPUT_HANDLE);
	CONSOLE_CURSOR_INFO cci;
	cci.dwSize = 50;
	cci.bVisible = FALSE;
	
	SetConsoleCursorInfo (hCon, &cci);	
}

void bannerJuego()
{
	colorLetras (9);
	
	cout << endl;
		
	cout << "\t\t ####  #####    ##    ####  ######" << endl;
	cout << "\t\t#      #    #  #  #  #    # #" << endl;
	cout << "\t\t ####  #    # #    # #      #####" << endl;
	cout << "\t\t     # #####  ###### #      #" << endl;
	cout << "\t\t#    # #      #    # #    # #" << endl;
	cout << "\t\t ####  #      #    #  ####  ######" << endl;
}

void marcoMenu()
{
	//Pintando las lineas de superiores e inferiores del menu
	for (int i = 8; i < 59; i ++)
	{
		gotoxy (i, 1);  cout << char (205);
		gotoxy (i, 14); cout << char (205);
	}
		
	//Pintando las lines de derecha e izquierda del menu
	for (int i = 2; i < 14; i ++)
	{
		gotoxy (7, i);  cout << char (186);
		gotoxy (59, i); cout << char (186);
	}
		
	//Pintando el borde superior izquierdo
	gotoxy (7, 1); cout << char (201);
		
	//Pintado el borde inferior izquierdo
	gotoxy (7, 14); cout << char (200);
		
	//Pintado el borde superior derecho
	gotoxy (59, 1); cout << char (187);
		
	//Pintado el borde inferior derecho
	gotoxy (59, 14); cout << char (188);
}

void opcionesMenu()
{
	colorLetras (7);	 
	gotoxy (27, 10); cout << "Jugar";
	gotoxy (27, 11); cout << "Instruciones";
	gotoxy (27, 12); cout << "Salir";		
}

int menuInicio()
{
	int opcionSeleccionada = 1;
	int tecla;
	bool repetir = true;
	
	Beep (500, 100);
	
	do
	{		
		gotoxy (3, 2);
		bannerJuego();
		
		marcoMenu();
		opcionesMenu();
		
		colorLetras (9);		
		gotoxy (24, 9 + opcionSeleccionada); cout << char (16);
		
		do
		{
			tecla = getch();
				
		} while (tecla != ARRIBA && tecla != ABAJO && tecla != ENTER);
		
		
		switch (tecla)
		{
			case ARRIBA: opcionSeleccionada --;
						 Beep (300, 100);
						 
						 //Codigo para borra la posicion anterior
						 gotoxy (24, 9 + opcionSeleccionada + 1); cout << " ";
			
						 if (opcionSeleccionada < 1)
						 {
						 	opcionSeleccionada = 3;
						 }
			break;
			
			case ABAJO: opcionSeleccionada ++;
						Beep (300, 100);
						
						//Codigo para borra la posicion anterior
						gotoxy (24, 9 + opcionSeleccionada - 1); cout << " ";
						
						if (opcionSeleccionada > 3)
						{
							opcionSeleccionada = 1;
						}
			break;
			
			case ENTER: repetir = false;			
			break;
		}		
		
	} while (repetir == true);
	
	return opcionSeleccionada;	
}

void animacionCargando()
{
	cout << endl; 
	
	colorLetras (7);
	
	gotoxy (26, 9); cout << "CARGANDO";
	
	Sleep (400);
	gotoxy (26, 9); cout << "CARGANDO.";
	
	Sleep (400);
	gotoxy (26, 9); cout << "CARGANDO..";
	
	Sleep (400);
	gotoxy (26, 9); cout << "CARGANDO...";  
	
	Sleep (400);
	gotoxy (26, 9); cout << "CARGANDO   ";
	
	Sleep (400);
	gotoxy (26, 9); cout << "CARGANDO."; 
	
	Sleep (400);
	gotoxy (26, 9); cout << "CARGANDO..";
	
	Sleep (400);
	gotoxy (26, 9); cout << "CARGANDO..."; 
	
	Sleep (400);
	gotoxy (26, 9); cout << "CARGANDO   ";
	
	Sleep (400);
	gotoxy (26, 9); cout << "CARGANDO."; 
	
	Sleep (400);
	gotoxy (26, 9); cout << "CARGANDO..";
	
	Sleep (400);
	gotoxy (26, 9); cout << "CARGANDO..."; 
}

void letreroFinDelJuego()
{
	colorLetras (12);
	
	cout << endl << endl;
	
	cout << "\t\t###### # #    #    #####  ###### #" << endl;      
	cout << "\t\t#      # ##   #    #    # #      #" << endl;     
	cout << "\t\t#####  # # #  #    #    # #####  #" << endl;      
	cout << "\t\t#      # #  # #    #    # #      #" << endl;      
	cout << "\t\t#      # #   ##    #    # #      #" << endl;      
	cout << "\t\t#      # #    #    #####  ###### ######" << endl;
	
	cout << endl;
	
	cout << "\t\t     # #    # ######  ####   ####" << endl;
	cout << "\t\t     # #    # #      #    # #    #" << endl; 
	cout << "\t\t     # #    # #####  #      #    #" << endl;
	cout << "\t\t     # #    # #      #  ### #    #" << endl;
	cout << "\t\t#    # #    # #      #    # #    #" << endl;
	cout << "\t\t ####   ####  ######  ####   ####" << endl;
}

void instrucciones()
{	
	colorLetras (9);
	cout << endl << endl;
	cout << "\tCONTROLES: ";
	
	colorLetras (10);
	cout << "Con las flechas direccionales puedes mover la nave" << endl;
	cout << "\t\t   arriba, abajo, izquierda, derecha y con la tecla" << endl;
	cout << "\t\t   espacio disparas." << endl;
	
	cout << endl;
	colorLetras (9);
	cout << "\tOBJETIVO: "; 
	
	colorLetras (10);
	cout << "El juego consiste en destruir la mayor cantidad de" << endl;
	cout << "\t\t  asteroides que mas puedas, antes que ellos te" << endl;
	cout << "\t\t  destruyan a ti, por cada asteroide que le dispares" << endl;
	cout << "\t\t  ganas 10 puntos, pero ten cuidado, porque entre mas" << endl;	
	cout << "\t\t  destruyas mas apareceran, por eso, BUENA SUERTE!" << endl;
}

void animacionSaliendo()
{
	colorLetras (15);
	cout << endl << endl << endl << endl;
	cout << "\t\tEsperamos te hayas divertido!" << endl;
	
	colorLetras (9);
	cout << endl;
	gotoxy (24, 6); cout << "Saliendo";
	
	Sleep (400);
	gotoxy (24, 6); cout << "Saliendo.";
	
	Sleep (400);
	gotoxy (24, 6); cout << "Saliendo..";
	
	Sleep (400);
	gotoxy (24, 6); cout << "Saliendo...";
	
	Sleep (400);
	gotoxy (24, 6); cout << "Saliendo   ";
	
	Sleep (400);
	gotoxy (24, 6); cout << "Saliendo";
	
	Sleep (400);
	gotoxy (24, 6); cout << "Saliendo.";
	
	Sleep (400);
	gotoxy (24, 6); cout << "Saliendo..";
	
	Sleep (400);
	gotoxy (24, 6); cout << "Saliendo...";
	
	Sleep (400);
	gotoxy (24, 6); cout << "Saliendo   ";
	
	Sleep (400);
	gotoxy (24, 6); cout << "Saliendo";
	
	Sleep (400);
	gotoxy (24, 6); cout << "Saliendo.";
	
	Sleep (400);
	gotoxy (24, 6); cout << "Saliendo..";
	
	Sleep (400);
	gotoxy (24, 6); cout << "Saliendo...";
	
	Sleep (400);
	gotoxy (24, 6); cout << "           ";
}


RECUERDA QUE PUEDES DESCARGAR EL JUEGO AQUI



CONCLUSIÓN

Y listo, el videojuego quedo listo y antes le sobre 15 minutos a Javier, esperamos tú también te hayas divertido junto con nosotros realizándolo, en total el juego está programado en 951 líneas de código.



NOTA: Sí quieres ayudarme y motivarme a seguir aportando contenido de alta calidad y que siga siendo completamente gratis, ¡No dudes en dejarnos tu donación!.
Ayudanos con tu donación

SÍGUENOS EN NUESTRAS REDES:

Suscríbete a nuestro canal Síguenos en Dailymotion Síguenos en Facebook Síguenos en Twitter Síguenos en Instagram Síguenos en TikTok Unete a nuestro Discord Síguenos en Kwai Síguenos en Linkedin Escríbenos a nuestro WhatsApp Síguenos en Telegram Síguenos en Twitch Suscríbete a tu sitio web

Muchas gracias también porque sabemos que has dado click en el botón que dice: SEGUIR de esta tu página web, y también porque compartes todos nuestros conocimientos y proyectos con los que más puedes, un abrazo gigante, mil bendiciones y nos vemos en la próxima clase.
Copyright © Estacion Racso