/* Se autoriza la distribucion y uso libre de este programa (freeware) */ /* Fernando Galindo Soria www.fgalindosoria.com www.laredi.com fgalindo@ipn.mx Cd. de Mexico */ /* Programa de inicio a la programacion en C (turbo C, Borland C) Bases de un Juego por computadora Ping Pong Se mueve la paleta con las flechas detecta colisiones y la pelota rebota 20/vii/2002*/ #include #include #include #include void main() { char car,ve; int gd=DETECT,gm, ix=200, iy=200, incx=1, incy=1, r=5, paly=1, incpaly=1; printf("\n\n\nBases de un Juego por computadora"); printf("\n Ping Pong"); printf("\n\nmueve la paleta con las flechas"); printf("\n\npara terminar oprime la tecla "); printf("\n\npara iniciar el juego oprime una tecla"); getch(); initgraph(&gd,&gm,""); lineto(0,getmaxy()); lineto(getmaxx(),getmaxy()); lineto(getmaxx(),0); lineto(0,0); while ( car !=27 ) { car=0; if(kbhit() != 0) car=getch(); //Dibuja la Paleta setcolor(0); //borra paleta line(20,paly,20,paly+60); line(21,paly,21,paly+60); if(car==72)incpaly=-1; //mueve coordenadas de la paleta if(car==80)incpaly=1; paly+=incpaly; //si sale de la pantalla cambia la direccion if((paly<=1) || (paly>=(getmaxy()-81)))incpaly*=-1; setcolor(6); //pinta la paleta line(20,paly,20,paly+60); line(21,paly,21,paly+60); delay(5); //Dibuja la Pelota setcolor(0); //borra el circulo circle(ix,iy,r); ix+=incx; //mueve iy+=incy; //si sale de la pantalla cambia la direccion if((ix<=(r+1)) || (ix>=(getmaxx()-r-1)))incx*=-1; if((iy<=(r+1)) || (iy>=(getmaxy()-r-1)))incy*=-1; //Detecta entre pelota y raqueta, si encuentra la raqueta rebota ve=getpixel(ix-r-1,iy); //ve el color del siguiente pixel if(ve==6)incx=1; //si el color es el de la raqueta invierte la direccion setcolor(2); //pinta el circulo circle(ix,iy,r); delay(5); } closegraph(); }