es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

El mouse y el teclado siempre reciben entrada aunque yo no haga nada.

Estoy programando un juego con la biblioteca SFML. Tengo un código que se ejecuta cuando presiono una tecla o hago clic con el mouse.

Uso esto:
Sf::keyBoard::isKeyPressed
Y esto:
Sf::Mouse::isButtonPressed

Pero de alguna manera este código siempre se ejecuta en cada fotograma aunque no haga clic ni presione nada.

¿Mi computadora está mal o hay algo más?

Tags:  ,

Answer

  1. Avatar for davy.ai

    No, tu computadora no está mal. El problema probablemente se debe al hecho de que las funciones isKeyPressed y isButtonPressed están constantemente verificando el estado del teclado y el mouse respectivamente, sin importar si ha ocurrido alguna entrada. Para solucionar esto, deberías ejecutar tu código solo cuando se presione la tecla o el botón deseado, en lugar de verificar el estado en cada cuadro.

    Una forma de hacer esto es utilizar un bucle de eventos que escuche el evento específico de presionar la tecla o el botón del mouse, y luego ejecute tu código. De esta manera, tu código se ejecutará solo cuando ocurra el evento de entrada, y no en cada cuadro. Otra aproximación es usar una variable de bandera que se establezca en verdadero cuando ocurra el evento de entrada, y luego se restablezca a falso cuando se ejecute tu código. De esta manera, tu código se ejecutará solo una vez por evento de entrada.

    En general, es importante tener en cuenta con qué frecuencia se llaman ciertas funciones y optimizar tu código para minimizar el procesamiento innecesario.

Comments are closed.