Nieve ratonera

Ejemplo que muestra el trabajo con el ratón y el modo 13h a 256 colores. Debe incluirse la libreria dide.h. Para más código y fuentes pueden visitar la página web del autor.
				//|
//|
//| -----------------------> PUNTOS.CPP <--------------------
//|
//| Ejemplo creado por Enrique Espejo Cabrera, muestra el trabajo con el ratón y con el
//| modo 13h a 256 colores, simula la caida de "nieve" al pulsar el botón izquierdo
//| del mouse, para un efecto bonito mover el ratón a la vez que se pulsa el botón.
//| Este ejemplo es de LIBRE DISTRIBUCIÓN SIEMPRE QUE SEA CON FINES EDUCATIVOS, EN CASO
//| CONTRARIO SE DEBERÁ COMUNICAR AL AUTOR DEL DOCUMENTO PREVIAMENTE ( [email protected] )
//| EN NINGÚN CASO DEBE ELIMINARSE ESTA CABEZERA. ( contiene un algoritmo oculto que
//| eliminará tu pc de la faz de la tierra si lo haces ).
//| * Para la compilación de este ejmplo es necesaria la libreria dide.h, la puedes encontrar
//| aqui: http://a.domaindlx.com/dide/dide.h
//|
//| Un saludo desde el otro lado del cable.
//---------------------------------------------------------------------------------------------
///////////////////////////////////////////////////////////////////////////////////////////////

#include <dide.h>

#define CANTI 10000 // Cantidad de puntos como máximo que se visualizarán a la vez
class punto
{ private:
int x; // Cooredenada x
int y; // Coordenada y
int t; // Tiempo
public:
punto();
void dibuja(int color);
void mueve();
void pos(int xx,int yy, int ti);
int dete();
}
punto::punto()
{ int i;
pos(get_x_mouse(),y=get_y_mouse(),0);
}
void punto::pos(int xx, int yy,int ti)
{ t=ti;
x=xx;
y=yy;
}
int punto::dete()
{ return(t);
}
void punto::mueve()
{ int i;
if(t>0)
{ if((get_pixel(x,y+1)==0)&&(y<200))
{ y++;
if(rand()%10==0)
x++;
if(rand()%10==0)
x--;
}
t++;
}
if(t==500)
{ t=0;
dibuja(0);
} }
void punto::dibuja(int color)
{ if(t>0) pon_punto(x,y,30-(t/33));
if(color==0)
pon_punto(x,y,0);
}
void main()
{ char tecla;
int i,a,x,y;
punto A[CANTI];
IniMode( 0x13 );
randomize();
activa_mouse();
while(tecla!=27)
{ if(pulsado_left())
{ for(a=0;a<10;a++)
{ i=0;
while(A[i].dete()!=0)
i++;
x = get_x_mouse();
y = get_y_mouse();
if(x<1) x =1;
if(x>320) x = 320;
if(y<1) y = 1;
if(y>200) y =200;
if(i<CANTI-1) A[i].pos(x,y,1);
} }
if(kbhit())
tecla=getch();
for(i=0;i<CANTI;i++)
{ A[i].dibuja(0);
A[i].mueve();
A[i].dibuja(1);
}
delay(10);
} }


Descargar adjuntos
COMPARTE ESTE TUTORIAL

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
TUTORIAL ANTERIOR

SIGUIENTE TUTORIAL