AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Andorra 2D [Ver. 0.4.5.1, 31.12.08]
Thema durchsuchen
Ansicht
Themen-Optionen

Andorra 2D [Ver. 0.4.5.1, 31.12.08]

Ein Thema von igel457 · begonnen am 24. Nov 2006 · letzter Beitrag vom 14. Sep 2011
Antwort Antwort
Seite 10 von 103   « Erste     8910 11122060     Letzte »    
Benutzerbild von igel457
igel457
Registriert seit: 31. Aug 2005
Andorra 2D

Was ist Andorra 2D?
Nein, Andorra 2D hat nichts mit dem kleinen europäischen Staat "Andorra" zu tun. Wie das "2D" im Namen auch schon erraten lässt, handelt es sich um eine 2D Engine. Diese wird für Delphi und Lazarus (Freepascal) entwickelt und zwar um das bekannte und oft verwendete DelphiX abzulösen (was an DelphiX nicht so toll ist lest ihr am besten hier). Andorra 2D hat einen ähnlichen Aufbau wie DelphiX - das Spriteengineinterface ist sogar zu 99% das Gleiche.

Features
Was ist nun das Besondere an Andorra 2D?
- Hardwarebeschleunigung
- Verwendung von Plugins zur Grafikdarstellung wodurch OpenGL, DirectX oder sogar die GDI mit Andorra 2D verwendet werden können
- Integrierte und beschleunigte Spriteengine
- Integrierte Zoomfunktion in der Spriteengine
- Modularer aufbau von den Loadern für Texturformate, es können einfach eigene Hinzugefügt werden
- orthogonale und perspektivische Projektionsmatrix
- Integration von 3D-Modellen (die Loader sind noch nicht geschrieben)
- Schnelle Partikelsysteme
- Ausnutzung von Multi-Core CPUs
- Lichter
- Shadersupport (Cg und HLSL)
- Einfaches Surface-System
- Einfaches Scenenmanagement
- Videowiedergabe mit MPEG2 Support
- Verwendung von mehreren "Windowframeworks", wodurch Unabhängikeit von der VCL/LCL erreicht wird.
- Clipping/Splitscreens
- 2D Physikengine mit Newton
- Integriertes "Hardware Canvas"
- Mächtiges, voll Skinbares GUI-System
- Nicht überladen - man wird nicht zum benutzen bestimmter Features gezwungen (wie zum Beispiel Datenpackages, wie dies in anderen Engines der Fall ist)
- Opensource, entweder unter der CPL oder der GPL verwendbar
- Mächtiges Bundle von Editoren und Tools
- Deutsche Tutorials
- Viele Demos
- Und natürlich die Banalitäten, die man sich von einer 2D-Engine so wünscht: Rotation, Additives Zeichnen, Skalierung, BitBlt, Texturzugriffe et cetera

Da die Plugins nur um die Basisfunktionalitäten der Grafikschnittstellen Wrapen, könnte man die Plugins theoretisch für eine Hybrid 3D-Engine verwenden

Mehr Infos...
...sowie Tutorials und weitere Links...
gibt es auf der Website: http://andorra.sourceforge.net/
Dort findet ihr auch Demos, Tutorials und Screenshots...

Wenn ihr Fragen, Kritik oder Anregungen habt, dann könnt ihr diese entweder hier oder bei SourceForge posten.

Downloads:
Momentan gibt es die Version 0.4.5. Einen Überblick über alle Downloads gibt es hier.

Das Package mit allen Demos, Prerequisiten und Binaries gibt es in der neusten Version hier:
Andorra 2D All-In-One-Package 23MB

Tutorials:
Die Tutorials gibt es nicht nur auf der Website, sondern auch in der DP. Allerding möchte ich betonen, dass die Tutorials auf meiner Website aktueller sind. Ich kann meine eigenen Tutorials hier nämlich nicht mehr bearbeiten (@Daniel: dringend umändern!). Hier ist eine kleine Liste, wobei die Sterne die Schwierigkeit darstellen:
http://andorra.sourceforge.net/img/star.pnghttp://andorra.sourceforge.net/img/star2.pnghttp://andorra.sourceforge.net/img/star2.pnghttp://andorra.sourceforge.net/img/star2.pnghttp://andorra.sourceforge.net/img/star2.pngTutorial 1 - Installieren und Initialisieren
http://andorra.sourceforge.net/img/star.pnghttp://andorra.sourceforge.net/img/star2.pnghttp://andorra.sourceforge.net/img/star2.pnghttp://andorra.sourceforge.net/img/star2.pnghttp://andorra.sourceforge.net/img/star2.pngAndorra 2D über CVS aktualisieren
http://andorra.sourceforge.net/img/star.pnghttp://andorra.sourceforge.net/img/star2.pnghttp://andorra.sourceforge.net/img/star2.pnghttp://andorra.sourceforge.net/img/star2.pnghttp://andorra.sourceforge.net/img/star2.pngTutorial 2 - Das erste Bild
http://andorra.sourceforge.net/img/star.pnghttp://andorra.sourceforge.net/img/star2.pnghttp://andorra.sourceforge.net/img/star2.pnghttp://andorra.sourceforge.net/img/star2.pnghttp://andorra.sourceforge.net/img/star2.pngTutorial 3 - Die Spriteengine
http://andorra.sourceforge.net/img/star.pnghttp://andorra.sourceforge.net/img/star.pnghttp://andorra.sourceforge.net/img/star2.pnghttp://andorra.sourceforge.net/img/star2.pnghttp://andorra.sourceforge.net/img/star2.pngPartikelsysteme
http://andorra.sourceforge.net/img/star.pnghttp://andorra.sourceforge.net/img/star.pnghttp://andorra.sourceforge.net/img/star2.pnghttp://andorra.sourceforge.net/img/star2.pnghttp://andorra.sourceforge.net/img/star2.pngDer Canvas
http://andorra.sourceforge.net/img/star.pnghttp://andorra.sourceforge.net/img/star.pnghttp://andorra.sourceforge.net/img/star.pnghttp://andorra.sourceforge.net/img/star2.pnghttp://andorra.sourceforge.net/img/star2.pngDas GUI-System
http://andorra.sourceforge.net/img/star.pnghttp://andorra.sourceforge.net/img/star.pnghttp://andorra.sourceforge.net/img/star.pnghttp://andorra.sourceforge.net/img/star2.pnghttp://andorra.sourceforge.net/img/star2.pngAndorra 2D und Lazarus
http://andorra.sourceforge.net/img/star.pnghttp://andorra.sourceforge.net/img/star.pnghttp://andorra.sourceforge.net/img/star.pnghttp://andorra.sourceforge.net/img/star.pnghttp://andorra.sourceforge.net/img/star2.pngÜber Windowframeworks

FAQ:
Eine Sammlung oft gefragter Fragen findet sich hier:
http://andorra.sourceforge.net/index.php?section=FAQ

Wichtig:
Falls ihr ein Programm mit Andorra 2D geschrieben habt/daran schreibt, dann wäre es schön wenn ihr mir Bescheid sagen könnt. Dann bekomme ich nämlich mal einen Überblick, wer die Bibliothek nun überhaupt verwendet und außerdem kann ich auf meiner Website Screenshots von eurem Projekt einfügen und auch auf eine eventuelle Website eures Projektes verlinken.

Über diesen Thread:
Bitte schreibt hier nur Wünsche oder Anregungen herein, die direkt mit der Engine zu tun haben. Wenn ihr eine Frage über die Anwendung in eurer Anwendung habt, dann macht am besten einen eigenen Thread im Multimedia-Teil auf, bei dem ihr "[Andorra 2D]" vor den Titel schreibt.

Danke für euer Interesse,
Andreas
Miniaturansicht angehängter Grafiken
imagelisteditor_692.png   physics2_202.png   extended_spriteengine_868.png   wormhunter_412.png  
"Sollen sich auch alle schämen, die gedankenlos sich der Wunder der Wissenschaft und Technik bedienen, und nicht mehr davon geistig erfasst haben als die Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frisst." - Albert Einstein
 
Benutzerbild von igel457
igel457

 
FreePascal / Lazarus
 
#91
  Alt 13. Mär 2007, 15:27
Zitat:
Ja, ich habe das komplette Paket runtergeladen. Aber was Prerequisiten sind, geschweige denn wie man diese installiert befindet sich derzeit außerhalb meines aktuellen Erfahrungsschatzes. :Sad: Ich lerne aber gern dazu. :Smile:
Ok... Du findest in dem Kompletten Paket eine Datei namens "prereq.zip". Als nächstes Kopierst du die enthaltenen Ordner aus den Zip-Datein in der Zip-Datei in deinen "Lib" Ordner (so was wie C:\Programme\Borland\Delphi7\lib\). Dann fügst du diese Ordner in Delphi zum Bibliothekspfad hinzu, was über das Menü --> Tools --> Optionen funktioniert. Hoffe das war verständlich.

Deine Demo läuft jetzt auch bei mir und sieht echt gut aus. Wenn du möchtest füge ich es als Demo hinzu.

Igel457
Andreas
  Mit Zitat antworten Zitat
Gravitar

 
Delphi 7 Enterprise
 
#92
  Alt 13. Mär 2007, 16:36
Hi Igel,

danke für die Tipps mit den Prerequisiten. Probiere ich heute abend gleich mal aus.



Zitat von igel457:
Deine Demo läuft jetzt auch bei mir und sieht echt gut aus. Wenn du möchtest füge ich es als Demo hinzu.
Oh, gern, wobei man das Ganze sicherlich viel besser programmieren kann.

Gruß, Andreas
  Mit Zitat antworten Zitat
Gravitar

 
Delphi 7 Enterprise
 
#93
  Alt 14. Mär 2007, 22:35
Hi,

inzwischen habe ich die Newton-Engine eingebunden. Die ersten Sprites fallen auch schon zu Boden!

Jetzt aber 2 Fragen:

1. Wie bekomme ich jetzt die Gravitation ausgeschaltet (nicht Mass := 0, da ansonsten bei einer Kollision kaum Wirkung erzielt wird)

2. Wie gebe ich den Sprites eine Geschwindigkeit mit (habe schon irgendwas mit ntVector3f oder AdVector2 ausprobiert, funzt aber nicht)

Hier der dazugehörige Code:

Delphi-Quellcode:
unit Main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,AdDraws, AdClasses, AdSprites,AdPhysics, AdPng;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    AdDraw1:TAdDraw; {Fläche auf der gemalt wird}
    AdPerCounter:TPerformanceCounter; {Misst die Zeit von Frame zu Frame}
    AdSpriteEngine: TSpriteEngine;
    AdImageList1:TPictureCollection; {Verwaltet die Zeichenobjekte}
    Slected:TSprite;
    dx,dy : integer;
    procedure Idle(Sender:TObject;var Done:boolean); {Wird aufgerufen, wenn Form nichts zu tun hat}
    procedure UpdatePosition; {Verändert die Positionen der Zeichenobjekte inkl. Rotation}
    { Public-Deklarationen }
  end;

const
  AnzObj = 5; {Wieviele Objekte sollen gezeichnet werden}

var
  Form1: TForm1;
  obj : array[1..AnzObj,1..6] of single; {Verwaltet x,y-Koordinate, Richtung + Geschwindigkeit, Rotationswinkel}
  objw,objh : Integer; {speichert die Höhe und Breite des geladenen Bitmaps}

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var i : integer;
begin
  randomize; {Zufallgenerator neu mischen}
  AdDraw1 := TAdDraw.Create(self); {Zeichenobjekt wird erzeugt}
  AdDraw1.DllName := 'AndorraDX93D.dll'; {Verbindung zu DirectX.dll wird hergestellt}
  AdPerCounter := TPerformanceCounter.Create; {Zeitmesser wird erzeugt}
  if AdDraw1.Initialize then {wenn das Initialisieren von ADraw1 geklappt hat}
  begin
    Application.OnIdle := Idle; {Wenn Form1 nicht zu tun hat, Idle aufrufen}
    AdImageList1 := TPictureCollection.Create(AdDraw1); {Imagelist erzeugen}
    AdSpriteEngine := TSpriteEngine.Create(Nil);
    AdSpriteEngine.Surface := AdDraw1;

    AdImageList1.Add('Fels').Texture.LoadGraphicFromFile('Stern.png',true,clWhite); {aus Stern.bmp laden, Maske=true, Maskenfarbe = clWhite}
    AdImageList1.Restore; {Irgenwas internes}
    objw := AdImageList1.find('Fels').Width; {Breite und Höhe in globalen Variablen speichern}
    objh := AdImageList1.find('Fels').Height;

    with TPhysicalApplication.Create(AdSpriteEngine) do
    begin
      SolverModel := smLinear;
    end;

    for i:= 1 to AnzObj do {erzeugen wir je Zeichenobjekt zufällige Position, Richtungs und Winkelinformationen}
    begin
      obj[i,1] := random(form1.Clientwidth);
      obj[i,2] := random(form1.ClientHeight);
      obj[i,3] := random(200)-random(200);
      obj[i,4] := random(200)-random(200);
      obj[i,5] := random(360);
      obj[i,6] := random(20)-random(20);
      With TPhysicalCylinderSprite.Create(AdSpriteEngine) do
      begin
        x := obj[i,1];
        y := obj[i,2];
        Image := AdImageList1.Find('Fels');
        Mass := 10;
        Angle := obj[i,5];
        NtVector3f(200,200,0);
        InitializeShape;
      end;
    end;
  end
  else
  begin
    ShowMessage('Error while initializing Andorra 2D. Try to use another display'+
                'mode or another video adapter.');
    halt;
  end;

end;

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

procedure TForm1.Idle(Sender: TObject; var Done: boolean);
begin
  if AdDraw1.CanDraw then
  begin
    AdPerCounter.Calculate; {wie lange ist seit dem letzten Aufruf vergangen?}
    Caption := 'FPS:'+inttostr(AdPerCounter.FPS); {FPS in Titelzeile ausgeben}
    AdDraw1.ClearSurface(clBlack); {Zeichfläche mit Schwarz löschen}

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

    AdDraw1.Flip; {gezeichnete Scene darstellen}
  end;
  Done := false;
end;

end.
Gruß, Andreas
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

 
Turbo Delphi für Win32
 
#94
  Alt 15. Mär 2007, 14:42
Wenn ich recht informiert bin, arbeitet der Igel bereits an einer integrierten Newton-Engine,sodass dir viel Arbeit erspart bleibt
Nikolai Wyderka
  Mit Zitat antworten Zitat
Benutzerbild von igel457
igel457

 
FreePascal / Lazarus
 
#95
  Alt 15. Mär 2007, 15:41
Zitat von Gravitar:
1. Wie bekomme ich jetzt die Gravitation ausgeschaltet (nicht Mass := 0, da ansonsten bei einer Kollision kaum Wirkung erzielt wird)
2. Wie gebe ich den Sprites eine Geschwindigkeit mit (habe schon irgendwas mit ntVector3f oder AdVector2 ausprobiert, funzt aber nicht)
Hallo,

die Newton Unit ist Momentan in einem sehr frühen Entwicklungsstadium, weshalb du die von dir oben genannten Punkte nicht ohne weiteres durchführen kannst (d.h. ohne meine Unit zu bearbeiten), was später aber ohne Probleme möglich sein wird. Momentan fokusiere ich meine "Kräfte" aber auf den Canvas und dann 3D oder die GUI. (Wobei ich die GUI praktisch schon, wenn auch für DelphiX, geschrieben habe.)

Da sich Nivosta Anfang der Woche (mal wieder) bei mir gemeldet hat, gibt es (hoffentlich) vorraussichtlich bis Ende des Monats auch das OpenGL Plugin und damit die volle Kompatibilität zu Lazarus/Kylix und Linux.
Zitat von inherited:
Wenn ich recht informiert bin, arbeitet der Igel bereits an einer integrierten Newton-Engine,sodass dir viel Arbeit erspart bleibt
Was meinst du mit integriert? Ist doch schon integriert ...

Heute komme ich, man sehe auf mein Alter, leider nicht mehr zu so viel... (Ich glaube ich spiele mal noch ein wenig Oblivion)

Danke für die Fragen,
Igel457
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von igel457
igel457

 
FreePascal / Lazarus
 
#96
  Alt 31. Mär 2007, 18:34
Hallo.
Ich habe mich mal dran gesezt und ein Tutorial zur Spriteengine geschrieben - siehe erster Beitrag.

Viel Spaß damit,
Igel457
Andreas
  Mit Zitat antworten Zitat
Florian H

 
Delphi 6 Professional
 
#97
  Alt 1. Apr 2007, 18:40
Ich habe den Schritt gewagt und mein Spiel DrawBall für Andorra2D umgeschrieben und was soll ich sagen? Es läuft prima, eine hervorragende Performance und prima Unterstützung von div. Grafikeffekten .. wirklich saubere Arbeit
Framerate ist, bei grafisch aufwändigen Leveln (viele kleine Einzelgrafiken) ca. 50-100x schneller (500-1000 statt ~10 FpS) ..

*lob & freu*
Florian Heft
  Mit Zitat antworten Zitat
framik
 
#98
  Alt 1. Apr 2007, 18:42
Juhu, danke.
Da kann ich gleich mal prüfen ob ich bis jetzt alles richtig gemacht habe.
  Mit Zitat antworten Zitat
Florian H

 
Delphi 6 Professional
 
#99
  Alt 1. Apr 2007, 18:53
Bisher siehts prima aus ^^
War ja auch der Grund wieso ich es damals noch nicht genutzt hab (vor 3-4 Monaten) .. da wars halt doch noch ein Stückweit mehr in der Entwicklung^^

Eine Frage noch: gibts irgendeine Möglichkeit, Text auf ner adDraw-Oberfläche auszugeben oder muss man sich das selber mittels Buchstaben-Grafiken zusammenbasteln?
Florian Heft
  Mit Zitat antworten Zitat
Benutzerbild von igel457
igel457

 
FreePascal / Lazarus
 
#100
  Alt 1. Apr 2007, 19:08
@Florian H:
Schön, dass ich dich endlich zu Andorra 2D "konvertiert" habe und es dir gefällt.

Es gibt das TAdFont Objekt, mit dem du ganz einfach Text ausgeben kannst. Siehe auch hier: http://www.delphipraxis.net/internal...t=97168#682570

In Version 0.2 gibt es dann auch einen "Canvas", mit dem das noch viel einfacher geht.

Noch viel Spaß,
Igel457
Andreas
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 10 von 103   « Erste     8910 11122060     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz