Zurzeit habe ich es in meinem projekt so realisiert das immer wenn ein timer "ausläuft" geprüft wird ob eine taste gedrückt wird:
Delphi-Quellcode:
procedure TForm1.Timer2Timer(Sender: TObject);
begin
{.....}
if GetAsyncKeystate(VK_RIGHT) < 0 then
begin
if ((richtung = 1)or(richtung = 3))
then richtung:=2;
end;
if GetAsyncKeystate(VK_LEFT) < 0 then
begin
if ((richtung = 1)or(richtung = 3))
then richtung:=4;
end;
if GetAsyncKeystate(VK_UP) < 0 then
begin
if ((richtung = 2)or(richtung = 4))
then richtung:=1;
end;
if GetAsyncKeystate(VK_DOWN) < 0 then
begin
if ((richtung = 2)or(richtung = 4))
then richtung:=3;
end;
{.....}
end;
jetzt habe ich das problem das man in meinem programm die geschwindigkeit von diesem timer selber einstellen kann! somit reagiert der timer auf tastenbefehle nur wenn er grad die befehle ausführt!
bei einem interwall von 500ms und einer durchschnittsdrückzeit von 100 ms kommt es vor das manche tastendrücke nicht beachtet werden was die spielbarkeit meines programms schwer beeinträchtigt!
im moment habe ich es so gelöst das ich diesen code in einen weiteren timer intigriert habe der alle 1ms die befehle ausführt! dabei reagiert das rpogramm an sich aber viel langsamer weil es ja jede ms prüft ob die tasten gedrückt sind!
wo genau muss ich den code einfügen das ich die timergeschichte vergessen kann! ich habe es in formpresskey probiert aber es will nicht!
torley