Ich kann dein Problemm wircklich nicht nachvollziehen. Die Tastaturpuffer wird sowieso automatisch "entladen", es sei denn, du hast die WM_XXX Nachrichten selbst behandelt und dabei etwas falsch gemacht. Am sonsten, sollte dein Speil immer eine Schleife durchlaufen etwas so:
Delphi-Quellcode:
while (not finished) do
begin
// spiel
end;
, dann ist es noch besser gar keine WM_KEYXXX oder WM_CHARXX Nachrichten überhaupt selbst zu behandeln, sondern diese lässt du DefWndProc behandeln. Mit GetAsyncKeyState kommt man dann weiter, beim jeder Durchlauf überprüft man gewünschte Tasten, z.B. so:
if Hi(GetAsyncKeyState(VK_ESCAPE))=128 then // ESC wurde gedruckt....
EDIT: Habe den letzten Beitrag übersehen,
.