Guten abend,
erstmal danke für eure Tipps.
Ich habe nun das Problem gefunden:
Delphi-Quellcode:
procedure TSpieler.forwd(Pixel : Integer);
begin
FX := FX + Pixel * cos(pi * (90.0 + Winkel)/ 180.0);
FY := FY - Pixel * sin(pi * (90.0 + Winkel)/ 180.0);
if FVisible then begin
FAdDraw.BeginScene;
with FAdDraw.Canvas do begin
Pen.Color := FFarbe;
Brush.Color := FFarbe;
Pen.Width := FBreite;
FAdDraw.Canvas.LineTo(round(FX),round(FY));
Release;
end;
FAdDraw.EndScene;
FAdDraw.Flip;
end;
end;
ist was anderes als
Delphi-Quellcode:
procedure TSpieler.forwd(Pixel : Integer);
var
NeuX, NeuY : Double;
begin
NeuX := FX + Pixel * cos(pi * (90.0 + Winkel)/ 180.0);
NeuY := FY - Pixel * sin(pi * (90.0 + Winkel)/ 180.0);
if FVisible then begin
FAdDraw.BeginScene;
with FAdDraw.Canvas do begin
Pen.Color := FFarbe;
Brush.Color := FFarbe;
Pen.Width := FBreite;
FAdDraw.Canvas.MoveTo(round(FX),round(FY));
FAdDraw.Canvas.LineTo(round(NeuX),round(NeuY));
Release;
end;
FAdDraw.EndScene;
FAdDraw.Flip;
FX := NeuX;
FY := NeuY;
end;
end;
bei dem unteren Beispiel wird die Linie gezeichnet, während dies bei dem oberen nicht der Fall ist.
mfg Looper