none
hacer un acumulador cuando se la clic en un label RRS feed

  • Pregunta

  • que tal a todos, me gustaría que me echaran la mano con algo...

    estoy realizando un juego que trata de que le tienes que dar clic a un carácter aleatorio que se esta moviendo en toda la pantalla, pero el chiste es que se vayan acumulando los clic's que se le dan al label en movimiento... en visual basic

    no se si estoy usando la herramienta correcta (que es el label) para lograr que se acumulen los clic's, o si tenga que usar otra

    muchas gracias por sus respuestas.

    saludos 

     


    domingo, 28 de octubre de 2018 2:19

Todas las respuestas

  • Hola Yeyo Jackon:

    La acumulación de clicks, no depende del tipo de control que estes usando, sino de si puedes capturar el evento click en el mismo.

    Dado que puedes y ya lo tienes, solo te resta disponer de una variable en tu formulario, que inicializas a la entrada, y en el evento click del label le sumas 1.

    Cuando decidas mostrar los clicks, pulsados, solo tienes que recoger el contenido de la variable de tu Forma

    Si decides que se van mostrando en otro label, además, lo escribes en el elvento click del label del movimiento. label2.Text = variable

    Un saludo

    domingo, 28 de octubre de 2018 6:34
  • que tal javi

    mira así es como estoy realizando mi programa pero no logro obtener que se acumulen los clics que se dan sobre el label en movimiento, es lo único que me hace falta, no se si el label sea la herramienta ideal para obtener el contador,

    te agradecería mucho tu respuesta

    Public Class Form1
        Dim caracter As Char
        Dim acierto = 0
        Dim incorrecto = 0


        Private Sub tmrMover_Tick(sender As Object, e As EventArgs) Handles tmrMover.Tick, lblCaracter.Click
            lblCaracter.Text = caracter
            If lblCaracter.Left < 900 Then  'estas lineas hacen mover al label que contiene la letra aleatoria
                lblCaracter.Left = lblCaracter.Left + 10
            Else
                lblCaracter.Left = 1
            End If
        End Sub
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Randomize()
            caracter = Chr(Int((Rnd() * 25) + 65)) 'esta linea genera letras aleatorias
            tmrMover.Start()
        End Sub
        Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
            Application.Exit() 'termina el programa
        End Sub
        Private Sub lblCaracter_MouseDown(sender As Object, e As MouseEventArgs) Handles lblCaracter.MouseClick
            If lblCaracter.Text = True Then
                lblAciertos = acierto + 1
            Else
                lblIncorrecto = incorrecto + 1
            End If
        End Sub
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        End Sub
    End Class

    domingo, 28 de octubre de 2018 21:00
  • Hola Yeyo Jackson:

    El label no es más que un contenedor para mostrar texto. ¿No quieres mostrar texto?, entonces, que no te genere dudas, no es problema del contenedor. Qué se puede hacer con otros mil cuatrocientos treinta y tres contenedores diferentes, seguro, pero ese es tan bueno como cualquier otro.

    Fijate en tú código, en el evento lblCaracter_Mouse dice if lblCaracter.Text = True,

    Creo que suponiendo que ese es el label donde está haciendo click el usuario, por tanto, cuando ocurre ese evento, ha acertado esa pulsación. Entonces acierto++; y el label que uses para mostrar el acierto, será lbl.Text = "genial".

    Cuando hace click, en cualquier otra zona de la pantalla que no es ese label, y se quedará la petición otro contenedor, en su evento x, entonces incorrecto ++; y lbl.Text ="esta vez has fallado";

    Espero te ayude

    lunes, 29 de octubre de 2018 6:25