elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Necesito ayuda en el juego del cross the road
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Necesito ayuda en el juego del cross the road  (Leído 2,692 veces)
Alberto0090

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Necesito ayuda en el juego del cross the road
« 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
  1.  

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


En línea

@XSStringManolo
Hacker/Programador
Colaborador
***
Desconectado Desconectado

Mensajes: 2.399


Turn off the red ligth


Ver Perfil WWW
Re: Necesito ayuda en el juego del cross the road
« Respuesta #1 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.


« Última modificación: 12 Junio 2019, 06:34 am por string Manolo » En línea

Mi perfil de patrocinadores de GitHub está activo! Puedes patrocinarme para apoyar mi trabajo de código abierto 💖

Alberto0090

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: Necesito ayuda en el juego del cross the road
« Respuesta #2 en: 12 Junio 2019, 06:30 am »

Gracias. Voy a buscar en google
En línea

Alberto0090

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: Necesito ayuda en el juego del cross the road
« Respuesta #3 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.
En línea

@XSStringManolo
Hacker/Programador
Colaborador
***
Desconectado Desconectado

Mensajes: 2.399


Turn off the red ligth


Ver Perfil WWW
Re: Necesito ayuda en el juego del cross the road
« Respuesta #4 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:
En línea

Mi perfil de patrocinadores de GitHub está activo! Puedes patrocinarme para apoyar mi trabajo de código abierto 💖

Alberto0090

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: Necesito ayuda en el juego del cross the road
« Respuesta #5 en: 12 Junio 2019, 07:04 am »

 :D Esta bien gracias la verdad me ayudarias muchisimo.
En línea

@XSStringManolo
Hacker/Programador
Colaborador
***
Desconectado Desconectado

Mensajes: 2.399


Turn off the red ligth


Ver Perfil WWW
Re: Necesito ayuda en el juego del cross the road
« Respuesta #6 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.

En línea

Mi perfil de patrocinadores de GitHub está activo! Puedes patrocinarme para apoyar mi trabajo de código abierto 💖

Alberto0090

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: Necesito ayuda en el juego del cross the road
« Respuesta #7 en: 12 Junio 2019, 15:39 pm »

Gracias. Voy a intentarlo.
En línea

Becerra

Desconectado Desconectado

Mensajes: 97


Siempre aprendiendo


Ver Perfil
Re: Necesito ayuda en el juego del cross the road
« Respuesta #8 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
En línea

Buenas preguntas obtienen mejores respuestas
Alberto0090

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: Necesito ayuda en el juego del cross the road
« Respuesta #9 en: 12 Junio 2019, 18:07 pm »

Gracias. Voy a intentarlo hacer.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
necesito ayuda con la instalacion de un juego :S
Juegos y Consolas
faku_73 7 2,479 Último mensaje 22 Diciembre 2006, 16:10 pm
por Grave
Juego Cross Buy o en dos consolas
Juegos y Consolas
palo_tes 0 1,903 Último mensaje 31 Marzo 2013, 03:36 am
por palo_tes
necesito ayuda para un juego...
Programación Visual Basic
marrison 3 2,211 Último mensaje 27 Junio 2013, 22:00 pm
por engel lex
Necesito ayuda de un juego T.T
Juegos y Consolas
mubies 8 4,657 Último mensaje 31 Julio 2013, 17:13 pm
por palo_tes
[AYUDA] ¡Necesito entrar a un juego!
Hacking
Zodiak98 2 2,437 Último mensaje 4 Diciembre 2013, 18:36 pm
por 0x98364
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines