tick - timer c# windows form




keydown congela el temporizador c# (2)

Debe implementar un hilo para ejecutar en segundo plano que haga un seguimiento del temporizador o use una clase de Trabajador de fondo para hacer esto por usted. Si desea un Temporizador de precisión, use la clase System.Threading.Timer.

Espero que esto ayude, Saludos, Tom.

Oye, estoy haciendo un juego tipo Frogger y estoy usando un temporizador para hacer que las imágenes se muevan por la pantalla. También estoy usando el evento de selección para manejar cuando el usuario mueve la 'rana'. Entonces, me moví hacia arriba, hacia abajo, etc.

El problema con el que me he encontrado es que cada vez que el usuario presiona un botón de movimiento, el temporizador se congela. Esto significa que si el usuario simplemente mantiene presionada 'w' o arriba, todos los autos dejan de moverse.

¿Hay alguna manera de poner el temporizador en un trabajador de segundo plano o una forma de hacer que el temporizador continúe funcionando incluso cuando el usuario se está moviendo?

¡Gracias por cualquier ayuda!

Esto es lo que tengo actualmente:

    public string i;
    private void Form1_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyValue == 68)
        {
            i = "right";
            backgroundWorker1.RunWorkerAsync();
        }
    }


private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
    {
        if (i == "right")
        {
            pictureBox1.Location = new Point((pictureBox1.Location.X + 17), pictureBox1.Location.Y);
        }
     }

Mire la ventana Salida cuando ejecuta su programa con el depurador. Verá muchos mensajes de IllegalOperationException. El método de trabajador en segundo plano está muriendo en una excepción, no lo está notando porque no marca la propiedad e.Error en un controlador de eventos DoWorkCompleted. Es por eso que no se está moviendo.

No tiene permiso para establecer las propiedades de un control en una cadena de fondo. Eso es lo que la excepción trata de decirte. Tendrá que renunciar a la idea de usar hilos para implementar su lógica de UI. Los juegos generalmente se implementan con un bucle de juego .





timer