Ayuda con juego en c

Publicado en 'Programación' por jaqus, 23 Feb 2011.





  1. jaqus

    jaqus Miembro nuevo

    Registro:
    18 Nov 2009
    Mensajes:
    16
    Likes:
    0




    HOLA, necesito ayuda para realizar un juego de nave en C ...... en realidad el juego es bastante simple, se basa en una nave "espacial" que tiene q esquivar objetos que caen al azar...... e avanzado un poco el programa pero me falta algunas cosas como por ejemplo que cuando el objeto choque con la nave se reste una vida (con un total de 4 vidas) y al terminar las vidas aparesca un mensaje de Game Over o algo asi si me pueden ayudar se les agradeceria mucho,ya q lo tengo q entregar el viernes y no tengo mucho tiempo para acabarlo(y tampoco mucha practica, por que recien estoy aprendiendo el lenguaje) ........ aca les dejo el codigo hasta donde e avanzado:yeah::

    Compilador: Visual C++ 2010



    Código:
    #include "stdafx.h"
    #include "stdio.h"
    #include "conio.h"
    #include "windows.h"
    #define MAXBALAS 10
    using namespace System;
    
    void imprimirFigura(int x, int y)
    {
      Console::SetCursorPosition(x+3,y); printf("^"); y++;
      Console::SetCursorPosition(x+2,y); printf("^^^"); y++;
      Console::SetCursorPosition(x,y); printf("<*---*>"); y++;
      Console::SetCursorPosition(x,y); printf("\\-----/"); y++;
      Console::SetCursorPosition(x+1,y); printf("*****"); y++;
    }
    
    void borrarFigura(int x, int y)
    {
      Console::SetCursorPosition(x+3,y); printf(" "); y++;
      Console::SetCursorPosition(x+2,y); printf("   "); y++;
      Console::SetCursorPosition(x,y); printf("       "); y++;
      Console::SetCursorPosition(x,y); printf("       "); y++;
      Console::SetCursorPosition(x+1,y); printf("     "); y++;
    }
    
    int anchoFigura()
    {
       return 7;
    }
    
    int altoFigura()
    {
       return 5;
    }
    
    int main(array<System::String ^> ^args)
    
    {
    //nave
     int posx = 36;
      int posy = 20;
      int delta = 3;
      
    
    //balas
     int balasX[MAXBALAS];
     int balasY[MAXBALAS];
     int balasDY[MAXBALAS];
    Random r;
    for(int i=0;i<MAXBALAS;i++)
    {
     balasX[i]=r.Next(1,79);
     balasY[i]=0;
     balasDY[i]=r.Next(1,4);
    }
    while(1)
    {borrarFigura(posx, posy);
        if (_kbhit())
        {
          char c = _getch();
          if (c == 72) posy -= delta;
          if (c == 80) posy += delta;
          if (c == 75) posx -= delta;
          if (c == 77) posx += delta;
        
          if (posx < 1) posx = 1;
          if (posy < 1) posy = 1;
          if (posx > 79-anchoFigura()) posx = 79-anchoFigura();
          if (posy > 26-altoFigura()) posy = 26-altoFigura();
        }
       
        imprimirFigura(posx,posy);
     for(int i=0;i<MAXBALAS;i++)
     {
    	 Console::SetCursorPosition(balasX[i],balasY[i]);
    	 printf(" ");
    	 balasY[i]+=balasDY[i];
    	  if (balasY[i]>24)
    	  {balasX[i]=r.Next(1,79);
    	   balasY[i]=0;
    	   balasDY[i]=r.Next(1,4);
    	  }
     }
     for(int i=0;i<MAXBALAS;i++)
     {Console::SetCursorPosition(balasX[i],balasY[i]);
      printf("*");
     }
     Sleep(500);
    }
    _getch();
    	
    }