MiniJuego en C++ - En desarrollo

Iniciado por JuanCPLUS, 28 Septiembre 2012, 03:36 AM

0 Miembros y 1 Visitante están viendo este tema.

JuanCPLUS

Hola! este es mi primer tema aquí en el elhacker.net

Aquí les traigo un código de un juego que estoy empezando a desarrollar.

Citar// Pequeño juego en C++ - 2012
// Versión: 0.1
// http://www.cplus-facilito.blogspot.mx/
// Compilado con DevC++
// Teclas de movimiento: W,S,A,D

// Si no desean crear gotoxy, pueden usar un bucle
// Un contador, que cuente el valor de Y y otro de X
// Cada vez que de vuelta pasa línea

// Para cambiar velocidad de movimiento
// cambia el valor del eje X y Y
// en sus respectivas funciones

// Funciona igual con un bucle pero se necesita más código
// Lo desarrolle así para facilitar el entendimiento

//Librerías que ocuparemos
#include <iostream> // Librería básica C++
#include <conio.h>  // Librería extra para usar getch
#include <windows.h> // Librería para poder desarrollar gotoxy

using namespace std; // Evitar la escritura de std en iostream

// Declarar todos los objetos
void personaje_arriba();
void personaje_abajo();
void personaje_izquierda();
void personaje_derecha();
void gotoxy();
void juego();

// Personaje Arriba
char personaje_arriba1[]={' ','X',' ',0};
char personaje_arriba2[]={'X','X','X',0};
char personaje_arriba3[]={'X',' ','X',0};
// Personaje Abajo
char personaje_abajo1[]={'X',' ','X',0};
char personaje_abajo2[]={'X','X','X',0};
char personaje_abajo3[]={' ','X',' ',0};
// Personaje Izquierda
char personaje_izquierda1[]={' ','X','X',0};
char personaje_izquierda2[]={'X','X',' ',0};
char personaje_izquierda3[]={' ','X','X',0};
// Personaje Derecha
char personaje_derecha1[]={'X','X',' ',0};
char personaje_derecha2[]={' ','X','X',0};
char personaje_derecha3[]={'X','X',' ',0};

// Variable tecla
char tecla;
// Eje X y Y
int x=0, y=0;

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

// Función principal - MENU
int main() {
   printf("\n\n\n");
   printf("          -------------------------------------------------------\n");
   printf("          -                   JUEGO EN C++                      -\n");
   printf("          -------------------------------------------------------\n");
   printf("          -                                                     -\n");
   printf("          -                                                     -\n");
   printf("          -       Presione cualquier tecla para iniciar         -\n");
   printf("          -                                                     -\n");
   printf("          -                                                     -\n");
   printf("          -                                                     -\n");
   printf("          -                                                     -\n");
   printf("          -------------------------------------------------------\n");
   gotoxy(0,0); // Cursor al inicio
   int menu = getch();
   juego();
   return 0;
}

// Función Juego
void juego() {
   x=37; //Iniciamos en el centro
   y=12;
   personaje_arriba(); // Mostramos el personaje
   do {
      tecla = getch();
      if (tecla == 'w' || tecla == 's' || tecla == 'a' || tecla == 'd' || tecla == 'W' || tecla == 'S' || tecla == 'A' || tecla == 'D') {
         if (tecla == 'w' ||tecla == 'W')
            personaje_arriba();
         if (tecla == 's' || tecla == 'S')
            personaje_abajo();
         if (tecla == 'a' || tecla == 'A')
            personaje_izquierda();
         if (tecla == 'd' || tecla == 'D')
            personaje_derecha();
       }
         
   }while(1); // Mientras sea verdadero se repite (siempre)
   cin.get();
}

// Posibles movimientos de nuestro personaje
void personaje_arriba() {
    if (y>=3) {
       system("cls");
       y-=3;
    }
    gotoxy(x,y); puts(personaje_arriba1); //Situar en el eje
    gotoxy(x,y+1); puts(personaje_arriba2); // Situar un espacio después del eje(que no queden en el mismo renglon)
    gotoxy(x,y+2); puts(personaje_arriba3); // Situar dos espacios después del eje
    gotoxy(0,0); // Cursor siempre en el inicio
}
void personaje_abajo() {
    if (y<=18) {          
       system("cls");
       y+=3;
    }
    gotoxy(x,y); puts(personaje_abajo1);//Situar en el eje
    gotoxy(x,y+1); puts(personaje_abajo2);// Situar un espacio después del eje(que no queden en el mismo renglon)
    gotoxy(x,y+2); puts(personaje_abajo3);// Situar dos espacios después del eje
    gotoxy(0,0); // Cursor siempre en el inicio
}
void personaje_izquierda() {
    if (x>=3) {
       x-=3;
       system("cls");
    }
    gotoxy(x,y); puts(personaje_izquierda1);//Situar en el eje
    gotoxy(x,y+1); puts(personaje_izquierda2);// Situar un espacio después del eje(que no queden en el mismo renglon)
    gotoxy(x,y+2); puts(personaje_izquierda3);// Situar dos espacios después del eje
    gotoxy(0,0); // Cursor siempre en el inicio
}
void personaje_derecha() {
    if (x<75) {
       x+=3;
       system("cls");
    }
    gotoxy(x,y); puts(personaje_derecha1);//Situar en el eje
    gotoxy(x,y+1); puts(personaje_derecha2);// Situar un espacio después del eje(que no queden en el mismo renglon)
    gotoxy(x,y+2); puts(personaje_derecha3);// Situar dos espacios después del eje
    gotoxy(0,0); // Cursor siempre en el inicio
}

Puntoinfinito

AHORA EN SOFTONIC || CLICK HERE!!
Base64: QWNhYmFzIGRlIHBlcmRlciAxIG1pbnV0byBkZSB0dSB2aWRhLiBPbOkh



HACK AND 1337 : http://hackandleet.blogspot.com
WEBSITE: http://www.infiniterware.

yogui20077

Se ejecuta perfectamente en c++ mis felicitaciones amigo  ;-)

dato000

no sirve en linux por el conio.h

es una completa molestia ese conio.h, instalarlo en linux es una tortura.



Saberuneko

Está utilizando alguna de las funciones del conio.h? Si no las utiliza, entonces no haría falta siquiera de importar conio.h. :3

Erres

En lo que sea, pero el mejor.