#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
}
|