Título: Necesito ayuda en el juego del cross the road Publicado por: Alberto0090 en 12 Junio 2019, 06:09 am Necesito ayuda sobre una parte del juego de que tengo que hacer es que el personaje que lo tengo llamado como SKIN y los carros CAR es que al chocar el personaje y el carro o carro al personaje pierda y se regrese al menu y si pasa del limite pasa al siguite nivel.
Ayuda Porfavor y es en c++. #include <iostream> #include <stdlib.h> #include <stdio.h> #include <string> #include <conio.h> #include <windows.h> #include <time.h> using namespace std; #define der 77 #define izq 75 #define arr 72 #define abj 50 void menu(); int iniciar(); int letra; int mover; int i; int nivel=1; bool quitar=false; bool seguir; void instruccion(); void salir(); void gotoxy(int x, int y){ HANDLE hCon; hCon= GetStdHandle(STD_OUTPUT_HANDLE); COORD dwPos; dwPos.X = x; dwPos.Y = y; SetConsoleCursorPosition(hCon,dwPos); } main(){ menu(); } void menu(){ int opciones; while(opciones!=4){ system("cls"); cout << "\t\t\t\t\t\t Crossy"<<endl<< "\t\t\t\t\t\t Road"<<endl<<endl; cout<< "\t\t\t\t\t\t 1- Iniciar"<<endl; cout<< "\t\t\t\t\t\t 2- Intrucciones"<<endl; cout<< "\t\t\t\t\t\t 3- Salir"<<endl; cin>>opciones; switch(opciones){ case 1: iniciar(); break; case 2: instruccion(); break; case 3: salir(); break; default: system("cls"); cout<< "Opcion no valida"<<endl; system("pause"); break; } } } bool cuadro(){ for(int x=1; x<=80; x++){ gotoxy(x,1); cout<< "."; gotoxy(x,10); cout<< "."; if(x<=10){ gotoxy(1,x); cout<< "."; gotoxy(80,x); cout<< "."; } } } class SKIN{ int x=40, y=9; public: SKIN(int personaje) {x= personaje/40; y=9;} SKIN(int _x, int _y): x(_x),y(_y){} void pintar(); void mover(); }; void SKIN::pintar(){ gotoxy(x,y); cout<< "@"; } void SKIN::mover(){ if(kbhit()){ char tecla=getch(); gotoxy(x,y); cout<< " "; if(tecla == 'a' && x>3)x--; if(tecla == 'd' && x+1 < 79)x++; if(tecla == 'w' && y>2)y--; if(tecla == 's' && y+1 < 10)y++; gotoxy(x,y); cout<< "@"; } } class CAR{ int x,y; public: CAR(int cars) {x,y;} CAR(int _x, int _y):x(_x),y(_y){} void pintar(); void mover(); }; void CAR::pintar(){ gotoxy(x,y); cout<< "O"; } void CAR::mover(){ gotoxy(x,y); cout<< " "; x++; if(x>79){ x=rand()%74 + 1; x = 1; } pintar(); } int iniciar(){ system("cls"); gotoxy (70,0); cout<< "Nivel: "<<nivel<<endl; Código cuadro(); SKIN N(40,9); N.pintar(); CAR car(15,8),car1(68,7),car2(38,7),car3(24,5),car4(47,4),car5(2,4),car6(34,4),car7(71,3),car8(18,3); bool game_over=false; while(!game_over){ car.mover(); car1.mover(); car2.mover(); car3.mover(); car4.mover(); car5.mover(); car6.mover(); car7.mover(); car8.mover(); car8.mover(); srand(time(NULL)); N.mover(); Sleep(60); } system ("pause"); } void instruccion(){ system("cls"); gotoxy(15,15); cout<< "Crossy Road es un juego en el cual se controla a un personaje"; gotoxy(15,16); cout<< "el cual intenta cruzar un camino mientras esquivas los obstaculos,"; gotoxy(15,17); cout<< "los cuales cuentan con movimiento en formas aleatorias y tener mucho cuidado"; gotoxy(15,18); cout<< "con los obstaculos porque al ser tocados son eliminados."<<endl; gotoxy(45,19); cout<< "CONTROLES"; gotoxy(45,20); cout<< "Arriba > W"; gotoxy(45,21); cout<< "Abajo > S"; gotoxy(45,22); cout<< "Izquierda > A"; gotoxy(45,23); cout<< "Derecha > D" <<endl; gotoxy(80,19); cout<< "Personaje: "<< "@"<<endl; gotoxy(80,20); cout<< "Carros: "<< "O"<<endl; system("Pause"); } void salir(){ exit(0); } Título: Re: Necesito ayuda en el juego del cross the road Publicado por: @XSStringManolo en 12 Junio 2019, 06:20 am Nunca he hecho colisiones. Voy a pasar el código al pc a ver si las doy hecho por intuicion xD.
Busca Detectar colisiones C++ en google, seguro que te salen varias formas. Ohh, lo estoy probando y está muy chulo. Jajaja. Título: Re: Necesito ayuda en el juego del cross the road Publicado por: Alberto0090 en 12 Junio 2019, 06:30 am Gracias. Voy a buscar en google
Título: Re: Necesito ayuda en el juego del cross the road Publicado por: Alberto0090 en 12 Junio 2019, 06:45 am Gracias. Si nomas le falta eso que al chocar salga de la partida y tambien que tenga que pasar la carretera.
Título: Re: Necesito ayuda en el juego del cross the road Publicado por: @XSStringManolo en 12 Junio 2019, 07:00 am Aún no me puse a escribir código. Estaba contestando unos mensajes etc.
Tal y como lo tienes la arroba desaparece al chocar. Pero tiene un bug que si te mueves sin parar puedes atravesar las O jajaja. Voy a ponerme a escribir las colisiones ( a ver si me salen ) :rolleyes: Título: Re: Necesito ayuda en el juego del cross the road Publicado por: Alberto0090 en 12 Junio 2019, 07:04 am :D Esta bien gracias la verdad me ayudarias muchisimo.
Título: Re: Necesito ayuda en el juego del cross the road Publicado por: @XSStringManolo en 12 Junio 2019, 09:08 am Me puse a mirar ejemplos de colisiones y me encontré con el juego a partir del cual fue creado el que pusiste tú o viceversa.
Tiene ya las colisiones hechas. Puedes reescribirlas para el Cross The Road. También tiene vidas, sonidos, etc. https://gist.github.com/RicardoACS/274c0e1e2d4785a76ef7 Si no tienes la librería de sonidos comenta el body de las funciones y ya te va. Una vez compilado maximiza la ventana de consola para jugar. Título: Re: Necesito ayuda en el juego del cross the road Publicado por: Alberto0090 en 12 Junio 2019, 15:39 pm Gracias. Voy a intentarlo.
Título: Re: Necesito ayuda en el juego del cross the road Publicado por: Becerra en 12 Junio 2019, 16:53 pm Hola
No he mirado el código muy detenidamente, pero creo que es fácil. Tanto el jugador como los coches son un carácter, con una posición x e y. Bien, colisionarán cuando ambos tengan la misma posición x e y. Tan solo tienes que añadir a la clase del coche y del jugador unos métodos que te devuelvan su posición en pantalla y luego, en el bucle, después de moverlos pues comparas la posición del jugador con la de cada coche y si coincide con alguno, es que ha chocado con ese. Ahora bien, tal y como lo tienes ésto es un lío, ya que tienes un montón de variables car1, car2 .... lo que te obligaría a hacer un montón de comparaciones. Lo que tienes que hacer es quitar esas variables y crear un array de coches, así con un bucle recorres todos los coches y te queda todo mucho mejor. Un saludo Título: Re: Necesito ayuda en el juego del cross the road Publicado por: Alberto0090 en 12 Junio 2019, 18:07 pm Gracias. Voy a intentarlo hacer.
|