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
}
Eso és C
Se ejecuta perfectamente en c++ mis felicitaciones amigo ;-)
no sirve en linux por el conio.h
es una completa molestia ese conio.h, instalarlo en linux es una tortura.
Está utilizando alguna de las funciones del conio.h? Si no las utiliza, entonces no haría falta siquiera de importar conio.h. :3
me gusta mucho!, felicidades!