Hallo zusammen.
Habe jetzt die DLLs in meinem Projekt auch gegen die neuen der Version 0.2 getauscht und TAdImage überall eingebunden, und seitdem klappt das meiste wieder. Aber beim Scrolling mit der Spriteengine habe ich jetzt Probleme. Überall dort, wo nichts ist (also keine Sprites) dort wird alles verzerrt gezeichnet. Habe eigentlich nichts geändert, also was ist in 0.2 anders?
Mein Rendercode:
Delphi-Quellcode:
procedure TForm1.Idle(Sender: TObject; var Done: boolean);
begin
if AdDraw.CanDraw then //Wenn überhaupt auf das AdDraw gezeichnet werden kann dann...
begin
AdPerCounter.Calculate;
Label3.Caption := 'FPS: ' + IntToStr(AdPercounter.FPS) +
' - TimeGap: ' + IntToStr(AdPercounter.TimeGap);
AdDraw.BeginScene;
AdDraw.ClearSurface(clBlack); //Füllt die Oberfläche mit schwarzer Farbe
Spriteengine.Dead;
if sdUp in Scrolling then
Spriteengine.Y := Spriteengine.Y + Settings.ScrollSpeed *
(AdPercounter.TimeGap / 1000);
if sdDown in Scrolling then
Spriteengine.Y := Spriteengine.Y - Settings.ScrollSpeed *
(AdPercounter.TimeGap / 1000);
if sdLeft in Scrolling then
Spriteengine.X := Spriteengine.X + Settings.ScrollSpeed *
(AdPercounter.TimeGap / 1000);
if sdRight in Scrolling then
Spriteengine.X := Spriteengine.X - Settings.ScrollSpeed *
(AdPercounter.TimeGap / 1000);
Spriteengine.X := Spriteengine.X + DiffX * (AdPercounter.TimeGap / 1000);
Spriteengine.Y := Spriteengine.Y + DiffY * (AdPercounter.TimeGap / 1000);
Spriteengine.Move(AdPercounter.TimeGap);
Spriteengine.Draw;
// MouseParticles.CreateParticles(1, TAdParticle, Container.ScreenToClient(
// Mouse.CursorPos).X, Container.ScreenToClient(Mouse.CursorPos).Y);
// MouseParticles.Move(AdPerCounter.TimeGap / 1000);
// MouseParticles.Draw(0, 0);
AdDraw.EndScene;
AdDraw.Flip; //Präsentiert die gezeichneten Dinge auf dem Bildschirm.
end;
Done := False;
// Diese Zeile nicht vergessen, sonst wird der Code nur sporadisch ausgeführt.end;
end;
Und anbei noch 2 Screenshots.
Grüße
Codewalker