Hola.
Intentaré ser claro :)
Esta es parte mi clase Game.
protected override void Update(GameTime gameTime)
{
if (Keyboard.GetState().IsKeyDown(Keys.Space))
cuadro.Drawable = !cuadro.Drawable;
base.Update(gameTime);
}
El problema es que el "cuadro" no aparece y desaparece cada vez que pulso espacio, sino que parpadea(porque mientras lo pulso se ejecuta Update() varias veces) y es imposible controlarlo.
Lo que quiero hacer es que aparezca y desaparezca cada vez que pulse espacio...
¿Eso es buffered input? ¿O todo lo contrario?
¿Puedo hacer esto con XNA?
Gracias por leerme ;)
Hola de nuevo.
Por ahora lo e solucionado de esta forma:
bool presionado = false;
protected override void Update(GameTime gameTime)
{
if (presionado && Keyboard.GetState().IsKeyUp(Keys.Space))
cuadro.Drawable = !cuadro.Drawable;
presionado = Keyboard.GetState().IsKeyDown(Keys.Space);
base.Update(gameTime);
}
¿Habría alguna manera de hacerlo mejor?
Saludos ;)
Yo por mi parte, y es de la forma en la que siempre lo hago, es tener una clase que maneje las pulsaciones de teclado y que según el estado de la misma, llame a un método de keyPressed, keyRepeated y keyReleased en el loop del motor. Para mí es más comodo así, aunque supongo que habrá más alternativas...