Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Andorra 2D - Fragen (https://www.delphipraxis.net/106796-andorra-2d-fragen.html)

olle 16. Jan 2008 21:02


Andorra 2D - Fragen
 
Hi, ich schriebe in Informatik über andorrasd eine Facharbeit. Im Laufe der Facharbeit werde ich mit Sicherheit eine Menge fragen haben und da ich nicht jedes Mal ein neues Thema aufmachen wollte, würde ich einfahc immer wieder hier reinposten.
Die erste Frage habe ich shcon *g*
Mein Code:
Code:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,AdDraws, AdClasses, AdTypes;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure Free(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  AdDraw: TAdDraw;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  AdDraw:= TAdDraw.create(self);
  AdDraw.DllName:= 'AndorraDX93D.dll';
  if (AdDraw.Initialize) then begin
    // irgend etwas
  end else begin
    ShowMessage('Fehler, bei der Initialisierung von Andorra 2D');
    halt;
  end;
end;

procedure TForm1.Free(Sender: TObject);
begin
  AdDraw.Free;
end;

end.
Ich bekomme aber immer die Fehlermeldung von der MessageBox zu sehen. Was ist an der Inizialisierung falsch ?? :gruebel:

Vielen Dank schon einmal :)

3_of_8 16. Jan 2008 21:09

Re: Andorra 2D - Fragen
 
Ist die DLL überhaupt da?

olle 16. Jan 2008 21:17

Re: Andorra 2D - Fragen
 
weiß ich nicht genau. Ich habe die units für andorra2d in delphi/lib/andorra/ drin. In andorra gibt es nocheinmal einen unterordner, der "dll" heißt, wo ich in einem weitern unterordner "DircetX" "andorraDX3D.dpr/.pas/.res etc finde. Reicht das, oder muss ich da iwas noch ergänzen??

fLaSh11 16. Jan 2008 21:21

Re: Andorra 2D - Fragen
 
Schieb die DLL mal in den Projektordner.

DeddyH 16. Jan 2008 21:22

Re: Andorra 2D - Fragen
 
Zitat:

Zitat von compile.txt
This file will help you to get your version of Andorra compiled.

DirectX Plugin:
----------------
If you want to compile the file "AndorraDX93D.dll", you have to download the corresponding headers. You'll get them by downloading them from following page:

http://www.clootie.ru/

Note: If you use newer headers, you'll also need to download the new DirectX-DLL files. (d3dx9_xx.dll)

OpenGL Plugin:
--------------
The OpenGL Plugin is still missing.

Compressors and additional file formats:
----------------------------------------
If you want to use the AdPng.pas for highly compressed graphics, you'll need to download the PNG Delphi library (http://pngdelphi.sourceforge.net).


If you have any questions, feel free to write an e-mail to:
andreas.stoeckel@gmx.net

Have a lot of fun!

Außerdem: Tutorial von Igel persönlich

olle 16. Jan 2008 21:40

Re: Andorra 2D - Fragen
 
Zitat:

Zitat von DeddyH

Genau mit diesem Tutorial mache ich es ja. Ich habe die Punkte nacheinander abgearbeitet. Bei "Andorra 2D Initialisieren" komme ich aber einfach nicht weiter, weil der besagte Fehler auftritt.
Ich habe das geade versucht und iwas runtergeladen und iwo hinkopiert und iwie gehofft.

Ganz ehrlich ich verstehe das bisher echt noch nicht.

DeddyH 16. Jan 2008 21:47

Re: Andorra 2D - Fragen
 
Wo ist denn die DLL? Falls sie nicht da ist, musst Du sie selbst kompilieren, ansonsten ins Programmverzeichnis kopieren.

olle 3. Mär 2008 16:29

Andorra2D - Frames
 
Hallo, ich habe jetzt nach langer Zeit wieder mit Andorra2D angefangen, und arbeite die Tutorials durch, die man auf http://andorra.sourceforge.net/ findet. Bin jetzt so weit, dass ich ein animiertes Bild erzeugen will. Habe jetzt also ein Bild, dass ich in Pattern eingeteilt habe. Die Animation steht soweit auch. Nur ist eben das Problem, dass die Schleife ca 5000mal / Sekunde durchläuft. Darum soll man ja "AdPerformanceCounter" iwie das mit Frames umsetzen. Bei mir klappt das aber leider nicht :(

Delphi-Quellcode:
procedure TForm1.Idle(Sender: TObject; var Done: boolean);
begin
  AdPerCounter.Calculate;
  Pattern:= Pattern + 15 * (AdPerCounter.TimeGap / 1000); //15 Frames / Sekunde

  if AdDraw1.CanDraw then  //Wenn gezeichnet werden kann
  begin
    AdDraw1.ClearSurface(clBlack); //Hintergrundfarbe

    AdDraw1.BeginScene;
      Pattern:= Pattern +1;                                  //Filmstreifen durchlaufen
      if Pattern >= AdImageList.Items[0].PatternCount-1 then //Wieder auf 0 setzen, wenn Ende erreicht ist
        Pattern:= 0;
      AdImageList.Find('figur1').Draw(AdDraw1,0,0,round(Pattern)); //Bild wird angezeigt
    AdDraw1.EndScene;

    AdDraw1.Flip;
  end;
  Done := false;
end;
In Form.Create erzeuge ich auch die Variable AdPerCounter
Delphi-Quellcode:
AdPerCounter:= TAdPerformanceCounter.Create(false); //Für Frames
Bei mir ändert sich aber nichts an der Geschwindigkeit der Abfolge der Bilder. Was mache ich falsch?

Vielen Dank im Vorraus olle.

Looper 3. Mär 2008 16:46

Re: Andorra 2D - Fragen
 
Ich glaube, dass du bei Pattern irgendetwas falsch verstanden hast.
Du änderts zuerst die Variable Pattern mit dem PerformanceCounter, was allerdings alles für die Katz ist, denn später sagst du wieder:
Delphi-Quellcode:
Pattern:= 0;
Das verstehe ich noch nicht so ganz :gruebel:

mfg Looper

igel457 3. Mär 2008 17:04

Re: Andorra 2D - Fragen
 
Lass einfach diese Zeile weg:
Delphi-Quellcode:
Pattern:= Pattern +1;

olle 3. Mär 2008 17:19

Re: Andorra 2D - Fragen
 
jap. habe ich auch gerade gemerkt. :wall: :wall: :wall:
Danke.
@ Looper
Die Zeile ist wichtig. Sie ist ja mit der If-Abfrage die Zeile drüber verbunden. Pattern gibt an, welches Bild der Animation ich benutzen muss. D.h. ich habe eine Figur, die sich bewegt. Und für jede Bewegung gibt es ein neues Bild (Pattern). Also z.B: 15 Pattern, die ich nacheinander anzeigen muss. Bin ich Bei Pattern Nr. 14 angekommen, muss ich Pattern wieder auf 0 setzen, damit das ertse Bild wieder angezeigt wird.

Looper 3. Mär 2008 17:49

Re: Andorra 2D - Fragen
 
Ja, Fehler von mir!

everdream 28. Apr 2008 21:14

Re: Andorra 2D - Fragen
 
Hm, ich kenne mich leider mit .dlls nicht aus...
Im Unterordner "dll" sind ja 3 Ordner zu finden, als erste wollte ich mal die directx dll compilieren (AndorraDX93D.dll).
Die Zugehörige Projektdatei "AndorraDX93D.dpr" kann ich auch ohne Probleme öffnen, nur streikt er beim compilieren schon im 2. (und letzten) Eintrag der Uses: "AdClasses". :wall:

Meldung: "File not Found AdClasses.dcu".
Stimmt auch, die Datei ist nirgendwo zu finden. :gruebel:

Des weiteren verwirrt mich die Sache mit den Headern. Ich habe sie - wie es in der compile.txt steht, heruntergeladen, weiß nun aber nicht so genau, wohin damit. :gruebel:

Ich hoffe, dass mir jemand helfen kann...

Vielen Dank schonmal für die Antworten!

P.S.: ist das dann vorerst die einzige .dll, die ich brauche, oder sind noch andere nötig?

3_of_8 28. Apr 2008 21:50

Re: Andorra 2D - Fragen
 
Ist denn die AdClasses.pas da?

everdream 28. Apr 2008 22:01

Re: Andorra 2D - Fragen
 
Ja, die ist da.
*.dcu sind soweit ich weiß ja kompilierte Units oder so, aber wie mache ich aus der .pas eine .dcu? Ich habe schon versucht sie in ein Projekt einzubunden, aber dann fehlen ja wieder 100 andere Units -.-

3_of_8 28. Apr 2008 22:12

Re: Andorra 2D - Fragen
 
Du musst in den Umgebungsoptionen den Suchpfad auf den Ordner stellen, in denen die ganzen *.pas-Dateien von Andorra liegen. (src)

everdream 28. Apr 2008 22:52

Re: Andorra 2D - Fragen
 
Hatte ich schon getan... hab Delphi nochmal neu gestartet, den Pfad nochmal raus und wieder rein genommen,... irgendwann gings dann, vermutlich irgendwo nen Fehler gemacht.

Mecker gibts aber immernoch:
Wenn ich AndorraDX93D kompilieren will, wird die AdTypes Unit geöffnet und folgende Meldung ausgegeben:
[Fatal Error] AdTypes.pas(485): F2039 Could not create output file '..\..\dcu\AdTypes.dcu'
(Das wird nach der letzten Zeile von AdTypes.pas ausgespuckt)

Sonst sind keine Fehler im Code markiert.

3_of_8 28. Apr 2008 22:59

Re: Andorra 2D - Fragen
 
Das ist normalerweise der Fall, wenn irgendein Programm die Ausgabedatei gesperrt hat oder die Ausgabedatei schreibgeschützt ist. Könnte aber auch sein, dass die Datei aus irgendeinem Grund doppelt im Suchpfad ist und Delphi selbst versucht, zweimal hineinzuschreiben. Halte ich für unwahrscheinlich, aber das wäre noch eine Erklärung.

everdream 29. Apr 2008 00:45

Re: Andorra 2D - Fragen
 
Nach der *.dcu habe ich ja schon gesucht, die gibt es auf meinem PC nicht. Daran liegst wohl nicht.

Menno, warum kann die *.dll nicht einfach mit im Achiv sein :(

igel457 29. Apr 2008 13:44

Re: Andorra 2D - Fragen
 
Du musst den Ordner "dcu" einfach noch manuell im Ordner "src" erstellen. Im "Full package" von Andorra 2D sind alle DLLs (von AndorraDX93D, AndorraOGL, über GLFW, bis hin zu libmpeg2), die du irgendwann mal brauchen könntest im Verzeichnis "bin" enthalten.

everdream 1. Mai 2008 18:54

Re: Andorra 2D - Fragen
 
Ich hab mir das Full Package nochmal gezogen, alle *.dlls in den Projektordner gepackt und irgendwie bin ich auch endlich an die *.dcus gekommen, aber Delphi sagt immernoch, dass er z.B. die AdDrawas.dcu nicht finden kann...


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:00 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz