Trotz rotem Kasten hier mal meine Antwort (weil ich mir sooo viel Mühe beim Schreiben gegeben habe
):
OK. Dafür sollte sich eigentlich das Ereignis OnKeyDown deines Formualrs eignen (Die Eigenschaft KeyPreview deiner Form sollte auf true stehen). Da kannst du dann per
if Key = VK_SPACE then TueWas;
überprüfen, ob es sich bei der gedrückten Taste um die Leertaste handelt. Hier solltest du dann irgendeine Boolean-Variable auf true setzen, damit du dir merken kannst, ob das Pferd gerade springt, denn soweit ich weiß wird das OnKeyDown-Ereignis mehrere Male aufgerufen, wenn die Taste gedrückt bleibt. Zusätzlich musst du in dem KeyDown-Ereignis also auch noch überprüfen, ob das Pferd gerade
nicht springt, also ob die Boolean-Variable false ist. Wenn dies der Fall ist, lässt du das Pferd halt springen. Nach dem Springen-Lassen setzt du die Variable wieder auf false, damit das Pferd erneut springen kann.
Zusammengefasst:
Delphi-Quellcode:
var SpringtGerade : Boolean;
//im OnCreate der Form
SpringtGerade := false;
// beim OnKeyDown:
if (Key = VK_SPACE) and not(SpringtGerade) then PferdSpingenLassen;
// in PferdSpingenLassen
SpringtGerade := true
// Code für das Springen-Lassen
SpringtGerade := false;
mfg
Edit: Ein weiteres Stichwort wäre evtl. noch GetAsyncKeyState.