Thema: Delphi Andorra 2D Gui Problem

Einzelnen Beitrag anzeigen

sabbert

Registriert seit: 16. Apr 2008
67 Beiträge
 
#1

Andorra 2D Gui Problem

  Alt 15. Aug 2009, 13:00
Hey,

bin dabei mich mal an dem GUI-System zu versuchen, aber es will nicht klappen

Werde den Code anhängen, vielleiht liegt dabei das Problem oder an den Dateien die geladen werden?!

Also sobald ich das Programm starte gibt es eine "schöne" Zugriffverletzung, aber sobald

ich die gui.axg rauskommentiere scheint es zu starten aber außer einem schwarzen Fenster wird nix angezeigt,

is denke ich klar, da in der GUI.axg daten zum Aussehen gespeichert werden. Hoffe ich habe das richtig verstanden.

Falls es an der Datei liegt und nicht am Code, frage ich mich wie man diese dann richtig erstellt ???

Hier der Code:

Delphi-Quellcode:
unit uMain;

interface

uses
  Windows, Dialogs, SysUtils, Graphics, Classes, Forms, AdDraws, AdClasses,
  Controls, ExtCtrls, AdSprites, AdSetupDlg, AdPNG, AdPerformanceCounter,
  AdGUI,AdComponents;
type
  TForm1= class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    AdDraw:TAdDraw;
    AdPerCounter:TAdPerformanceCounter;
    AdImageList1:TAdImageList;
    AdSpriteEngine:TSpriteEngine;
    procedure Idle(Sender:TObject;var Done:boolean);
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  AdGUI : TAdGUI;
const
  path = './resources/';

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
  i:integer;
  AdSetupDlg:TAdSetup;
begin
  AdPerCounter := TAdPerformanceCounter.Create;

  AdDraw := TAdDraw.Create(self);

  AdSetupDlg := TAdSetup.Create(AdDraw);
  AdSetupDlg.Image := 'logo1.png';

  if AdSetupDlg.Execute then
  begin
    if AdDraw.Initialize then
    begin
      Application.OnIdle := Idle;

      AdImageList1 := TAdImageList.Create(AdDraw);
      AdImageList1.Restore;

      AdGUI := TAdGUI.Create(AdDraw); //Erzeugen der Klasse
      AdGUI.Skin.LoadFromFile('sunna.axs'); //Laden des Skins
      AdGUI.Cursors.LoadFromFile('cursors.xml'); //Laden der Cursor
      AdGUI.LoadFromFile('Gui.axg'); //Laden der GUI

      AdSpriteEngine := TSpriteEngine.Create(nil);
      AdSpriteEngine.Surface := AdDraw;



      Randomize;
    end
    else
    begin
      ShowMessage(AdDraw.GetLastError);
      halt;
    end;
  end
  else
  begin
    halt;
  end;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  AdSpriteEngine.Free;
  AdImageList1.Free;
  AdPerCounter.Free;
  AdDraw.Free;
end;

procedure TForm1.Idle(Sender: TObject; var Done: boolean);
begin
  if AdDraw.CanDraw then
  begin
    AdPerCounter.Calculate;
    Caption := 'FPS:'+inttostr(AdPerCounter.FPS);

    AdDraw.ClearSurface(clBlack);
    AdDraw.BeginScene;

    AdSpriteEngine.Move(AdPerCounter.TimeGap / 1000);
    AdSpriteEngine.Draw;
    AdSpriteEngine.Dead;

    AdDraw.EndScene;
    AdDraw.Flip;

    Done := false;
  end;
end;

end.
Angehängte Dateien
Dateityp: zip gui_995.zip (473,3 KB, 5x aufgerufen)
Christian
  Mit Zitat antworten Zitat