Hola amigos! Aquí ando de nueva cuenta para seguir mostrándoles ejemplos de aplicaciones gráficas en C++ Builder y así seguir aprendiendo cada vez más cosas nuevas.
Bueno pues en esta ocasión realizaremos una aplicación para crear un pixel y moverlo alrededor del perímetro de la forma, y cada vez que complete la vuelta volverá a hacer los mismo pero cada vez más hacia el centro, formando el llamado efecto serpiente.
Para realizar esta aplicación lo que necesitamos es pintar la forma de color negro cambiando la propiedad Color a clBlack. Por esta vez el único componente que necesitaremos en la forma será un Timer.
Ahora nos vamos al archivo H y en las declaraciones de usuario declaramos lo siguiente:
private: // User declarations
POINTS Puntos[1000];
int inicioX;
int inicioY;
int fin;
Bien, habiendo realizado lo anterior procedemos con la codificación de el único componente que tenemos en la forma, es decir, el Timer, en él escribimos el siguiente código:
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
if(Puntos[0].x <= ClientWidth && Puntos[0].y == inicioY)
{
Puntos[0].x++;
}
if(Puntos[0].x == ClientWidth - fin)
{
Puntos[0].y++;
}
if(Puntos[0].y == ClientHeight - fin)
{
Puntos[0].x--;
if(Puntos[0].x == inicioY + 2)
{
inicioY = inicioY + 2;
}
}
if(Puntos[0].x == inicioY)
{
Puntos[0].y--;
if(Puntos[0].y == inicioX+2)
{
inicioX = inicioX + 2;
fin = fin + 2;
}
}
Canvas->Pixels[Puntos[0].x][Puntos[0].y] = clYellow;
}
//---------------------------------------------------------------------------
En la línea final del código podemos notar que el color lo tenemos siempre que corramos el programa en amarillo, ustedes pueden cambiar esa parte del código y poner el color que más les guste si así lo desean.
Ahora necesitamos 2 eventos, el primero de ellos es el evento OnCreate de la forma, lo abrimos y colocamos el siguiente código:
void __fastcall TForm1::FormCreate(TObject *Sender)
{
inicioX = 0;
inicioY = 0;
fin = 1;
}
//---------------------------------------------------------------------------
Con este código lo que hacemos es inicializar las variables, ahora el segundo evento que necesitamos es el llamado OnResize, también de la forma, una vez que lo hayamos abierto colocamos el siguiente código en él:
void __fastcall TForm1::FormResize(TObject *Sender)
{
Invalidate();
}
//---------------------------------------------------------------------------
Con esto redimensionamos todo en caso de que la forma cambie de tamaño.
Y pues ya saben lo que sigue chavos, compilan y corren su aplicación y debería verse de la siguiente manera:
Espero que pueda notarse el efecto del movimiento del pixel en la parte superior e izquierda de la forma, sino es así pues ya verán en su aplicación el efecto que genera al ir simulando el movimiento.
Pues en esta ocasión fue todo amigos, continúen practicando lo que hemos aprendido hasta ahora y nos vemos en la próxima para seguir realizando más aplicaciones en C++ Builder. Nos vemos amigos!
No hay comentarios:
Publicar un comentario