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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Juego de naves y asteroides
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Juego de naves y asteroides  (Leído 2,233 veces)
cNoob

Desconectado Desconectado

Mensajes: 59



Ver Perfil
Juego de naves y asteroides
« en: 29 Junio 2016, 00:30 am »

Hola!
Estoy haciendo un juego de una nave que debe esquivar asteroides que se acercan.
Para provocar que se acerquen hice que cada vez la x de estos sean menores, pero no se por que no funciona... He aquí el código; un saludo! (la parte que falla (que yo crea) es la que esta comentada como ASTEROID MOVEMENT (linea 20))

Código
  1. #include <iostream>
  2. #include <ctime>
  3. #include <cstdlib>
  4. #include <conio.h>
  5. #include <windows.h>
  6. using namespace std;
  7. bool gameOver;
  8. const int width=20;
  9. const int height=10;
  10. int x, y, astdX=width-1, astdY,asteroidYrand, score;
  11. enum eDirection {STOP=0, UP, DOWN};
  12. eDirection dir;
  13.  
  14. void Setup()
  15. {
  16.    gameOver=false;
  17.    dir=STOP;
  18.    x=5;
  19.    y=height/2;
  20.    //ASTEROID MOVEMENT
  21.    if(astdX==width-1){astdY=1+rand()%8;}
  22.    if(astdX!=width&&astdX!=0){astdX--;}//ESTO DEBERIA HACER QUE LA X FUESE CADA VEZ MENOR, ES DECIR, QUE EL ASTEROIDE SE FUESE ACERCANDO
  23.    if(astdX==0){astdX=width-1;}
  24.  
  25. }
  26.  
  27. void Draw()
  28. {
  29.    system("cls");
  30.    for(int i=0;i<height+1;i++)
  31.    {
  32.        if(i==0)
  33.        {
  34.            for(int j=0;j<width+1;j++)
  35.            {
  36.                cout<<"#";
  37.                if(j==width){cout<<endl;}
  38.            }
  39.        }
  40.        if(i>0&&i<height)
  41.            {
  42.                for(int j=0;j<width+1;j++)
  43.            {
  44.                if(j==0){cout<<"#";}
  45.                if(j>0&&j<width)
  46.                {
  47.                    if(i!=y){cout<<" ";}
  48.                    if(j<5&&i==y){cout<<" ";}
  49.                    if(j==5&&i==y){cout<<">";}
  50.                    if(j>5&&i==y){cout<<" ";}
  51.                }
  52.                if(j==width){cout<<"#"<<endl;}
  53.            }
  54.            }
  55.        if(i==height)
  56.        {
  57.            for(int j=0;j<width+1;j++)
  58.            {
  59.                cout<<"#";
  60.                if(j==width){cout<<endl;}
  61.            }
  62.        }
  63.    }
  64.    cout<<"Score: "<<score<<endl;
  65.    cout<<"astdY: "<<astdY<<endl<<"astdX: "<<astdX<<endl<<"Rand: "<<(1+rand()%8)<<endl;
  66. }
  67.  
  68. void Input()
  69. {
  70.    if(_kbhit())
  71.    {
  72.        switch(_getch())
  73.        {
  74.        case 'w':
  75.            dir=UP;
  76.            break;
  77.        case 's':
  78.            dir=DOWN;
  79.            break;
  80.        case 'x':
  81.            gameOver=true;
  82.            break;
  83.        }
  84.    }
  85. }
  86.  
  87. void Logic()
  88. {
  89.    switch(dir)
  90.    {
  91.    case UP:
  92.        y--;
  93.        break;
  94.    case DOWN:
  95.        y++;
  96.        break;
  97.    default:
  98.        break;
  99.    }
  100.    if(y==1||y==height-1){dir=STOP;}
  101.    if(y==0||y==height){y=height/2;}
  102.    if(x==astdX&&y==astdY){gameOver=true;}
  103.    if(x==astdX&&y!=astdY){score+=10;}
  104. }
  105.  
  106. int main()
  107. {
  108.    Setup();
  109.    while(!gameOver)
  110.    {
  111.        Draw();
  112.        Input();
  113.        Logic();
  114.        Sleep(100);
  115.    }
  116.    return 0;
  117. }
  118.  


En línea

Wannabe programador autodidacta de c++
"Usain Bolt comenzó gateando."
cNoob

Desconectado Desconectado

Mensajes: 59



Ver Perfil
Re: Juego de naves y asteroides
« Respuesta #1 en: 29 Junio 2016, 01:08 am »

Solucionado, he cambiado el código de lugar XD


En línea

Wannabe programador autodidacta de c++
"Usain Bolt comenzó gateando."
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
JUEGO NAVES MULTIJUGADOR
Juegos y Consolas
Zakt 1 2,460 Último mensaje 3 Diciembre 2006, 16:10 pm
por Division-x
Mi juego de naves en Java « 1 2 »
Java
Pakiyopgd 17 17,641 Último mensaje 26 Enero 2010, 22:52 pm
por Pakiyopgd
[Ayuda] Juego de nave (Rutina de asteroides)
Programación C/C++
Zodiak98 2 3,698 Último mensaje 7 Septiembre 2013, 23:47 pm
por eferion
Pequeño juego de naves:
Programación C/C++
Error 404: 2 8,233 Último mensaje 11 Diciembre 2014, 20:20 pm
por Error 404:
Juego de naves VBScript + HTA.
Scripting
John1Connor 2 2,839 Último mensaje 23 Junio 2015, 08:55 am
por тαптяα
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines