Einzelnen Beitrag anzeigen

Benutzerbild von bigben37
bigben37

Registriert seit: 19. Dez 2007
Ort: Freiburg
116 Beiträge
 
Delphi 2009 Professional
 
#4

AW: [OpenGl] Anfängerfrage - Rechteck bewegen

  Alt 8. Apr 2011, 18:14
Wenn du im OnKeyDown den Wert der Verschiebung einfach so veränderst, kann es sein dass zwischen 2x rendern unterschiedlich viele mal das Event aufgerufen wird. Deshalb würd ich im OnKeyDown einen boolean setzen, die festhält, dass die taste gedrückt wurde. In deinem Timer überprüfst du dann, ob die variable gesetzt worden ist. Wenn ja, dann die zu verschiebende Strecke ändern und den boolean wieder auf false setzen, damit sich das Quad nur wieder bewegt, wenn der boolean von dem keydown geändert wird.
Falls das jetzt zu kompliziert formuliert war^^:
Delphi-Quellcode:
var
  MoveLeft: Boolean;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key = VK_LEFT then
    MoveLeft := true;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  if MoveLeft then
  begin
    dx := dx - 5;
    MoveLeft := false;
  end;
end;
Benjamin
Optimismus ist nur ein Mangel an Information
  Mit Zitat antworten Zitat