hm, mal so weit wie möglich zusammengezurrt:
Delphi-Quellcode:
var
AdSetupDlg: TAdSetup;
begin
AdDraw := TAdDraw.Create(Parent);
AdSetupDlg := TAdSetup.Create(Canvas);
AdSetupDlg.Image := 'Logo.png';
if AdSetupDlg.Execute then
begin
if Canvas.Initialize then
begin
State := [rsFPS, rsMap];
InputState := [];
end
else
begin
Result := False;
Exit;
end;
end
else
halt;
AdSetupDlg.Free;
Result := True;
Application.OnIdle := Idle; // Renderingschleife zuweisen
und die Idle-Routine:
Delphi-Quellcode:
PerformanceCounter.Calculate;
DoScroll(PerformanceCounter.TimeGap); // Scroll in der Sprite-Engine
if Canvas.CanDraw then //Wenn überhaupt auf das AdDraw gezeichnet werden kann dann...
begin
Canvas.ClearSurface(0); //Füllt die Oberfläche mit schwarzer Farbe
Canvas.BeginScene;
if (rsFPS in State) then
RenderFPS;
if (rsMap in State) begin
SpriteEngine.Dead;
SpriteEngine.Draw;
end;
Canvas.EndScene;
Canvas.Flip; //Präsentiert die gezeichneten Dinge auf dem Bildschirm.
end;
Und nein, ich rufe kein Setup2D-Engine auf. Sollte ich es denn tun?
Und die Kleinigkeiten:
Der Parameter im Konstruktor von TAdSetupDlg ist kein Form mehr, sondern ein TAdDraw und es gibt die Properties Parent (TForm) und ... noch eins (vergessen) nicht mehr