Botón “Atrápame si puedes!!”


En este momento voy a mostrar cómo hacer un mini juego, para mantener a alguién ocupado, el juego consiste en un botón al cual debemos hacerle clic, pero el botón se mueve cada vez que queremos “atraparlo”.Empezamos un nuevo proyecto en WPF, a nuestro formulario arrastramos un Botón que dirá: “Atrápame!!!!!!” o lo que quieran, también si quieren pueden agregar un label para contar las veces en que se ha intentado “atrapar” al botón, mi formulario queda así:

 AtrapameInicio

En XAML, declaramos el evento Mouse_Enter para el botón:   

<Button Height="44" HorizontalAlignment="Left" Margin="141,114,0,0" VerticalAlignment="Top" Width="133" MouseEnter="button1_MouseEnter" Click="button1_Click" BorderBrush="Black" BorderThickness="2" FontSize="14" Foreground="Red">Atrapame!!!

 Para hacer que nuestro botón se mueva, debemos crear un objeto TranslateTransform y luego agregarlo a la propiedad Render Transform del Botón:

private TranslateTransform trasladar;
button1.RenderTransform = this.trasladar;

 Luego en el evento recién creado button1_MouseEnter escribimos lo siguiente:

private  void button1_MouseEnter(object sender, MouseEventArgs  e)
{
this.trasladar.X = x.Next(100);
this.trasladar.Y = x.Next(100);
}

Cada vez que  el Mouse pase por el botón, este se trasladará a una ubicación aleatoria, para hacer aún mucho mejor todo, podemos obtener el alto y ancho de la ventana, para que nuestro botón se desplace solo en ese rango:

private TranslateTransform trasladar;
Int32 ancho;
Int32 alto;
public Window1()
{
    InitializeComponent();
    this.trasladar = new TranslateTransform();
    button1.RenderTransform = this.trasladar;
    ancho = Convert.ToInt32(this.Width);
    alto = Convert.ToInt32(this.Height);
}

private void button1_MouseEnter(object sender, MouseEventArgs e)
{
    Random x = new Random();
    this.trasladar.X = x.Next(0,alto);
    this.trasladar.Y = x.Next(0, ancho);
}

Y para el conteo de clics declaramos un entero para guardar los clics:

Int32 clicTotal;

Luego en el XAML del Windows declaramos un evento MouseDown, y escribimos lo siguiente en el evento:  

private void Window_MouseDown(object sender, MouseButtonEventArgs e)
{
       clicTotal++;
       label1.Content = "Clics :" + clicTotal;
} 

Y para finalizar si logramos “atrapar” al botón:

private void button1_Click(object sender, RoutedEventArgs e)
{
        MessageBox.Show("Por fin!!!!");
}

Para mejorar todo, podemos dejar maximizada la Ventana: 

<Window Title="Atrápame si puedes" Height="440" Width="698" WindowState="Maximized" MouseDown="Window_MouseDown">

 Nuestro minijuego en acción:  

  Atrapame1 

 Atrapame2  

Bien, como siempre adjunto el código Fuente: Aquí y el Ejecutable Aquí.

Anuncios

Deseas comentar o sugerir algo?

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s