Wie löse ich eine Funktion nur einmalig auf Tastendruck aus ?

Posted By: Ascalon

Wie löse ich eine Funktion nur einmalig auf Tastendruck aus ? - 04/22/08 19:26

Ich löse mit der Taste "e" eine Funktion aus.
Wie mache ich es aber, dass nur einmal auf die Taste "e" gedrückt werden kann, damit der Spieler nicht versehentlich zweimal oder öfter auf die Taste "e" drückt, und dadurch die Funktion öfter nacheinander ausführt?
Posted By: Lukas

Re: Wie löse ich eine Funktion nur einmalig auf Tastendruck aus - 04/22/08 19:35

Setze an den Anfang deiner Funktion:

wait(1);
if (key_e) return;

und deine Funktion wird immer genau einmal ausgeführt wenn man die Taste wieder loslässt.


Wenn du willst, dass sie genau einmal ausgeführt wird, sobald man die Taste drückt und nicht erst, wenn man sie wieder loslässt, dann mach folgendes:

void on_e_NULL ();

void deine_function ()
{
on_e_NULL ();
...
}

void on_e_NULL ()
{
on_e = NULL;
while (key_e) wait(1);
on_e = deine_function;
}


;\)
© 2023 lite-C Forums