Este es mi primer juego que programo en c++, y no anda en xp ( pero en windows vista y seven anda de 10 ). Lo que pasa es que no anda las "flechas" ( A, S, D y W ).
Este es el codigo ( codigo de novato

Código c++:
No se si sera mi complilador, uso el ZinjaI ( y no lo cambio :p ).Ver original
#include <stdio.h> #include <stdlib.h> #include <conio.c> #include <iostream> #define UP_BOTON 119 #define DONW_BOTON 115 #define LEFT_BOTON 97 #define RIGHT_BOTON 100 #define SELECT_BOTON 101 #define PAUSE_BOTON 112 #define SALIR_BOTON 104 using namespace std; bool animacionInicioOn=true; void animacionInicio(); void HeadeJuego(int lineas); void MenuInicio(int linea); void CambiarOpcionMenu(int opcion, int linea); void SalirJuego(int linea); void jugarYa(); void MenuConfiguraciones(int linea); void CambiarOpcionMenuConfig(int opcion, int linea); int numeroRand(int m, int n),velocidadGame=1,timeGame=-1; int main (int argc, char *argv[]) { _setcursortype( _NOCURSOR ); animacionInicio(); for(int i=1;i<=10;i++){ HeadeJuego(i); Sleep(1); } MenuInicio(5); return 0; } void CambiarOpcionMenu(int opcion, int linea){ switch(opcion){ case 1: gotoxy(3,linea+1); textbackground(6); cprintf("Jugar Ya!"); gotoxy(3,linea+3); textbackground(7); cprintf("Configurar"); gotoxy(3,linea+5); textbackground(7); cprintf("Salir"); break; case 2: gotoxy(3,linea+1); textbackground(7); cprintf("Jugar Ya!"); gotoxy(3,linea+3); textbackground(6); cprintf("Configurar"); gotoxy(3,linea+5); textbackground(7); cprintf("Salir"); break; case 3: gotoxy(3,linea+1); textbackground(7); cprintf("Jugar Ya!"); gotoxy(3,linea+3); textbackground(7); cprintf("Configurar"); gotoxy(3,linea+5); textbackground(6); cprintf("Salir"); textbackground(7); break; } } void MenuInicio(int linea){ int OpcionSelecionada=1,n=0; CambiarOpcionMenu(OpcionSelecionada,linea); gotoxy(22,linea+1); cprintf("Usa la \"A\" para Subir."); gotoxy(22,linea+2); cprintf("Usa la \"S\" para Bajar."); gotoxy(22,linea+3); cprintf("Usa la \"E\" para Selecionar."); while(n!=SELECT_BOTON){ cout<<" "; if(n==UP_BOTON){ if(OpcionSelecionada-1<=3&&OpcionSelecionada-1>0){ OpcionSelecionada=OpcionSelecionada-1; CambiarOpcionMenu(OpcionSelecionada,linea); } }else if(n==DONW_BOTON){ if(OpcionSelecionada+1<=3&&OpcionSelecionada+1>0){ OpcionSelecionada=OpcionSelecionada+1; CambiarOpcionMenu(OpcionSelecionada,linea); } } } switch(OpcionSelecionada){ case 1: jugarYa(); break; case 2: MenuConfiguraciones(linea); break; case 3: SalirJuego(linea); break; default: MenuInicio(linea); break; } } int numeroRand(int m, int n){ } void jugarYa(){ int n,s_i=10,s_j=24,o_i=0,o_j=0,puntos=0; bool pause_on=false; for(int i=10;i<=20;i++){ HeadeJuego(i); Sleep(1); } o_i=numeroRand(0,17); o_j=numeroRand(0,74); while(n!=SALIR_BOTON){ if(n==PAUSE_BOTON) pause_on=!pause_on; if(!pause_on){ textbackground(7); for(int i=0;i<=20;i++){ gotoxy(2,4+i); cprintf(" "); } if(n==LEFT_BOTON){ if(s_j-1>=0) s_j-=1; } if(n==RIGHT_BOTON){ if(s_j+1<=74) s_j+=1; } if(n==UP_BOTON){ if(s_i-1>=0) s_i-=1; } if(n==DONW_BOTON){ if(s_i+1<=17) s_i+=1; } if(s_i==o_i&&s_j==o_j){ puntos+=30; o_i=numeroRand(0,17); o_j=numeroRand(0,74); } textbackground(12); gotoxy(3+s_j,5+s_i); cprintf(" "); textbackground(7); textbackground(11); gotoxy(3+o_j,5+o_i); cprintf(" "); textbackground(7); } textcolor(14); gotoxy(2,24); if(pause_on) cprintf("Presione <H> para salir al menu | Presiona <P> para sacar la pausa."); else cprintf("Presione <H> para salir al menu | Presiona <P> para poner la pausa."); textcolor(15); gotoxy(40,3); cout<<"PUNTOS: "<<puntos; Sleep(velocidadGame); } for(int i=20;i>=10;i--){ HeadeJuego(i); Sleep(1); } MenuInicio(5); } void MenuConfiguraciones(int linea){ int n=0,OpcionSelecionada=1; HeadeJuego(10); textcolor(14); gotoxy(3,9+linea); cprintf("Presione <H> para volver al menu."); textcolor(15); gotoxy(3,linea); cprintf("CONFIGURAR"); CambiarOpcionMenuConfig(OpcionSelecionada,linea); while(n!=SALIR_BOTON){ cout<<" "; if(n==SELECT_BOTON){ if(OpcionSelecionada==1){ HeadeJuego(10); gotoxy(3,linea); cprintf("CONFIGURAR: Velocidad"); gotoxy(3,linea+3); cprintf("Selecione una velocidad en milisegundos: (ej.: 1000 es igual a 1 segundo)"); gotoxy(3,linea+4); cin>>velocidadGame; textcolor(14); gotoxy(3,linea+6); cprintf("Velocidad configurada correctamente."); gotoxy(3,linea+7); cprintf("Presione una tecla para ir al menu de configuraciones."); textcolor(15); MenuConfiguraciones(linea); }else if(OpcionSelecionada==2){ HeadeJuego(10); gotoxy(3,linea); cprintf("CONFIGURAR: Restaurar configuraciones"); velocidadGame=1; textcolor(14); gotoxy(3,linea+3); cprintf("Se a restaurado correctamente las configuraciones."); gotoxy(3,linea+7); cprintf("Presione una tecla para ir al menu de configuraciones."); textcolor(15); MenuConfiguraciones(linea); } }else{ if(n==UP_BOTON){ if(OpcionSelecionada-1<=2&&OpcionSelecionada-1>0){ OpcionSelecionada=OpcionSelecionada-1; CambiarOpcionMenuConfig(OpcionSelecionada,linea); } }else if(n==DONW_BOTON){ if(OpcionSelecionada+1<=2&&OpcionSelecionada+1>0){ OpcionSelecionada=OpcionSelecionada+1; CambiarOpcionMenuConfig(OpcionSelecionada,linea); } } } } HeadeJuego(10); MenuInicio(5); } void CambiarOpcionMenuConfig(int opcion, int linea){ switch(opcion){ case 1: gotoxy(3,linea+2); textbackground(6); cprintf("Velocidad"); gotoxy(3,linea+4); textbackground(7); cprintf("Restaurar configuraciones."); gotoxy(3,linea+6); textbackground(7); cprintf("Tiempo (prox.)"); break; case 2: gotoxy(3,linea+2); textbackground(7); cprintf("Velocidad"); gotoxy(3,linea+4); textbackground(6); cprintf("Restaurar configuraciones."); gotoxy(3,linea+6); textbackground(7); cprintf("Tiempo (prox.)"); break; } } void SalirJuego(int linea){ HeadeJuego(10); gotoxy(3,linea); textbackground(7); cprintf("Adios.. chau!... ( presione un boton para salir )"); } void HeadeJuego(int lineas){ textbackground(1); clrscr(); textbackground(3); textcolor(15); gotoxy(2,1); cprintf(" "); gotoxy(2,2); cprintf(" SNAKE - por pato12 "); gotoxy(2,3); cprintf(" "); textbackground(7); for(int i=0;i<=lineas;i++){ gotoxy(2,4+i); cprintf(" "); } textbackground(8); gotoxy(2,lineas+4+1); cprintf(" BY PATO12 | HALFMUSIC.COM "); textbackground(7); } void animacionInicio(){ if(!animacionInicioOn) return; else animacionInicioOn=false; int color_animate=6; while(color_animate!=4){ if(color_animate==6) color_animate++; else if(color_animate==7) color_animate++; else if(color_animate==8) color_animate=0; else if(color_animate==0){ color_animate=4; break; } textcolor(15); textbackground(color_animate); clrscr(); gotoxy(22,10); cprintf("Juego echo por Pato12 | HalfMusic.com"); Sleep(800); } for(int i=10;i>0;i--){ gotoxy(22,i+1); cprintf(" "); gotoxy(22,i); cprintf("Juego echo por Pato12 | HalfMusic.com"); Sleep(20); } gotoxy(22,1); cprintf(" "); }
Gracias
Salu2
