#include <tigcclib.h> void pausa(int retar) { short int num_aleatorio; while (retar-- > 0) {num_aleatorio = rand() % num_aleatorio;} } void _main(void) { int inc_x=1,inc_y=1,puntos=0,vidas=3,x_vidas=100,retardo=301; int gana_vida=20; //Indice para ganar vidas que se incrementa x1,5 cada vez redondeado a la decena int p=100;//Pos pala int automatico=1;// 1=Juego manual, -1=automático unsigned int x=90,y=50;//Pos Pelota // declaramos los SPRITES, PELOTA DE 8 BIT Y PALA DE 32 //unsigned char Pelota2[] = {0x3C,0x3C,0x5E,0x7E,0x7E,0x7E,0x3C,0x3C}; unsigned char Pelota[] = {0x3C,0x7E,0x5E,0xFF,0xFF,0x7E,0x7E,0x3C}; unsigned char Vida[] = {0x66,0x7e,0xdf,0xFf,0x7E,0x7e,0x3c,0x18}; unsigned long int Pala[] = {0x00000000,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0x00000000}; ClrScr(); FontSetSys(F_4x6); Printf_xy(160,0,"A=Auto"); FontSetSys(F_6x8); Printf_xy(8,120,"ESC=Salir, Flechas=Mover, ENTER=Pausa"); FontSetSys(F_8x10);printf_xy(0,0,"Puntos: %d",puntos); Sprite8(x_vidas,2,8,Vida,LCD_MEM,SPRT_XOR);x_vidas+=10; Sprite8(x_vidas,2,8,Vida,LCD_MEM,SPRT_XOR);x_vidas+=10; Sprite8(x_vidas,2,8,Vida,LCD_MEM,SPRT_XOR); Sprite32(p,110,8,Pala,LCD_MEM,SPRT_XOR); //INICIO bucle ppal del PROGRAMA ********************************** while (1) { Sprite8(x,y,8,Pelota,LCD_MEM,SPRT_XOR); pausa(retardo); if (_keytest (RR_ESC)) break; if (_keytest (RR_LEFT) && p>2) {Sprite32(p,110,8,Pala,LCD_MEM,SPRT_XOR);p-=2;Sprite32(p,110,8,Pala,LCD_MEM,SPRT_XOR);} if (_keytest (RR_RIGHT) && p<204) {Sprite32(p,110,8,Pala,LCD_MEM,SPRT_XOR);p+=2;Sprite32(p,110,8,Pala,LCD_MEM,SPRT_XOR);} if (_keytest (RR_A)) {automatico=-automatico;} Sprite8(x,y,8,Pelota,LCD_MEM,SPRT_XOR); x=x+inc_x; y=y+inc_y; if (x>210){inc_x=-inc_x;} if (y==1){inc_y=-inc_y;} if (y==104 && abs(x-p)<=32) //Se cumple cuando la pelota golpea la pala { inc_y=-inc_y; puntos++;printf_xy(0,0,"Puntos: %d",puntos); if (puntos==gana_vida){vidas++;x_vidas+=10;Sprite8(x_vidas,2,8,Vida,LCD_MEM,SPRT_XOR);gana_vida=10*(int)(1.5*gana_vida/10);} //Aumentamos vidas si llega a x ptos: 20,30,40,60,90,130... if (puntos==7 || puntos==20 || puntos==40|| puntos==80){retardo-=75;} //Aumentamos velocidad juego si llega a x ptos } if (y>104) //La pelota no ha golpeado la pala............ { Sprite8(x_vidas,2,8,Vida,LCD_MEM,SPRT_XOR); if (vidas>1) { y=40;vidas--;x_vidas-=10;inc_y=-inc_y; } else break; } if (automatico==-1) //Juego automático, la pala se mueve sola {Sprite32(p,110,8,Pala,LCD_MEM,SPRT_XOR);p=x-10;Sprite32(p,110,8,Pala,LCD_MEM,SPRT_XOR);} } //FIN bucle ppal del programa ********************************** Printf_xy(70,60,"FIN Partida"); Ngetchx(); // Esperamos a que se pulse una tecla Ngetchx(); // Esperamos a que se pulse una tecla } |