Witam,
mam problem taki, że przechwytuje eventy klawiatury w taki sposób:
procedure TGame.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
if((Key=VK_LEFT) AND (Self.MenuPause.Checked=False)) then Bar.moveLeft(SHIFT_PX);
if((Key=VK_RIGHT) AND (Self.MenuPause.Checked=False)) then Bar.moveRight(SHIFT_PX);
end;
A jako, że piszę grę typu arkanoid to muszę szybko przechwytywać eventy klawiatury. Problem mój z tą metodą polega na tym, że jeżeli przesuwam w lewo i nagle chce zmienić kierunek to niestety muszę kliknąć kliknąć kilka razy, żeby się to stało i mogę znów trzymać wciśnięty klawisz. Chciałbym, żeby bez przechwytywania myszy (tylko sterowanie belką za pomocą klawiatury) zrobić szybką zmianę kierunku. Dodam od razu, że kod ten jest bezpośrednio w formularzu (jej poruszanie jest w głównym wątku formularza). Belka jest obiektem TImage i korzystająć z "obiektowości" dodałem metody moveLeft(shift : Byte) oraz moveRight(shift : Byte), które działają tak, że przypisują belce nowe położenie tak:
Self.Left := Self.Left + shift;
//lub
Self.Left := Self.Left - shift;
W zależności od kierunku. Za pomoc z góry dzięki.