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 49 von 103   « Erste     39474849 50515999     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
 
#481
  Alt 22. Feb 2008, 15:41
Komisch, die AdStandardFontGenerator.pas sollte durch das Definieren des Kompilerschalters deaktiviert werden:
Delphi-Quellcode:
//Auszug aus AdDraws.pas

uses
  SysUtils, Classes,
  AdClasses, AdTypes, AdList, AdPersistent,
  AdWindowFramework, AdDLLLoader,
  AdCanvas, AdBitmap, AdFontFactory, AdFont
  {$IFNDEF DO_NOT_INCLUDE_STD_FORMATS}
  ,AdStandardFontGenerator, AdSimpleCompressors, AdFormats
  {$ENDIF}
  {$IFNDEF DO_NOT_INCLUDE_STD_WINDOWMGR}
  ,AdComponentWindow
  {$ENDIF};
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

 
Delphi 2009 Professional
 
#482
  Alt 23. Feb 2008, 13:08
Hallo Andreas,
ich wollte gerade an Freggels II weitermachen, und muss erstmal alle Änderungen durchführen

Nun bekomme ich jetzt ständig Fehlermeldungen bezüglich des Fonts?
Kann ich jetzt kein Font zwischenspeichern und immer wieder verwenden?

Davon abgesehen:
Ich quäle mich gerade mit der AdGUI durch.
Und zwar habe ich das Problem dass er bei mir nichts anzeigt, obwohl ich alles so gemacht habe, wie verlangt.
Also ein Objekt davon erstellt, und das auch freigegeben.

Nun zeichnet er nichts, also dachte ich, im Tutorial stehe nicht, dass ich in der Schleife AdGUI.Draw schreiben müsste.
Also auch das gemacht, und es tauchte immerhin meine GUI auf, aber mehr auch nicht!
Also auch keinen Cursor...

Und auch habe ich mir "AdGUI.Draw" das Problem, dass das Formular nicht zentriert ist, obwohl die Eigenschaft auf "true" steht.

MfG
xZise
Fabian
  Mit Zitat antworten Zitat
Benutzerbild von igel457
igel457

 
FreePascal / Lazarus
 
#483
  Alt 23. Feb 2008, 16:23
Hallo Fabian,

blättere in diesem Thread mal zwei Seiten zurück und schaue dann ganz unten - da habe ich das mit dem neuen Fontsystem schon einmal erklärt. Den von Fonts.GenerateFont zurückgegebenen Font kannst du natürlich zwischenspeichern.

Für den Fehler im GUI-Tutorial entschuldige ich mich, es müsste AdGUI.Update heißen.

Danke für die Fehlerbeschreibungen,
Andreas
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

 
Delphi 2009 Professional
 
#484
  Alt 23. Feb 2008, 16:25
o.O Was ist mit der DP los. Wo ist der Text hin:
Zitat von igel457:
Hallo Fabian,

blättere in diesem Thread mal zwei Seiten zurück und schaue dann ganz unten - da habe ich das mit dem neuen Fontsystem schon einmal erklärt. Den von Fonts.GenerateFont zurückgegebenen Font kannst du natürlich zwischenspeichern.

Für den Fehler im GUI-Tutorial entschuldige ich mich, es müsste AdGUI.Update heißen.

Danke für die Fehlerbeschreibungen,
Andreas
@ GUI:
Okay... Also irgendwas stimmt da nicht. Und zwar bewegt sich nicht die Maus...
Außerdem sieht das... Naja etwas gewöhnungsbedürftig aus.

[edit=0]Das mit der Maus hat sich erledigt! Der Connector fehlte.[/edit]
[edit=1]Ich habe eine Frage zur der AdImageList: Und zwar würde ich gerne wissen, wie viele Frames auf einen Bild sind Ich habe nämlich das Problem, sobald man eine andere Animation verwendet, es sein könnte dass die Frames unterschiedlich sind. So kann ich Beispielsweise keine anderen Bilder verwenden die mehr oder weniger als 8 Frames haben.

Konkretes Beispiel: Du erlaubst es deinen Spielern selber "Styles" zu entwerfen, also auch mit verschiedenen Figuren. Was ist aber wenn statt 8 Frames die Figur 12 Frames hat...

Btw.: Könnte man die Videos nicht so ähnlich machen, wie eine Animation? Also eine AdImageList schnell abspielen?[/edit]
[edit=2]Ich habe mal ein Beispielprojekt angehangen. Ruckelt leider, weil ich es nicht hingekriegt habe, jeden Frame einzeln abzufotographieren
Außerdem sind bestimmt einige Kniffe von A2D nicht umgesetzt Es sollte eigentlich nur als Beispiel dienen. Und das "Video" ist jetzt schon 50 MB groß... Aber da 7z auf 3 % ( ) runterkomprimiert hat kein Problem für die DP ^^

Eine Frage bezüglich des Kompressors: Ich hatte zuerst PNG genommen, aber da is nix passiert ?!
Übrigens solltest du das ModalResult von dem Cancelbutton im ILE auf mrCancel setzten (z.Zt. ist es mrOk)[/edit]

MfG
xZise
Miniaturansicht angehängter Grafiken
a2dundf2_123.png  
Angehängte Dateien
Dateityp: 7z a2dvid_111.7z (2,25 MB, 10x aufgerufen)
Fabian
  Mit Zitat antworten Zitat
Benutzerbild von igel457
igel457

 
FreePascal / Lazarus
 
#485
  Alt 24. Feb 2008, 09:40
Hallo,

wie viele Frames (nach DelphiX Pattern genannt) auf einem Bild sind, kannst du über die Property AdImage.PatternCount herausfinden. Um Videos kümmere ich mich früher oder später - dann kannst du gleich MPEGs abspielen. Das schnelle Abspielen einer ImageList funktioniert zwar, benötigt aber unnötig viel Grafikkartenspeicher. Das ganze müsste per Multithreading und über einen Ringpuffer realisiert werden.

Um den Fehler mit dem Font auf deinem Screenshot kümmere ich dann auch noch, ich habe diesen selbst auch schon festgestellt.

Kannst du mir das mit dem PNG-Kompressor noch einmal näher erklären, ich verstehe nicht so ganz, was du meinst .

Hoffe geholfen zu haben,
Andreas
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

 
Delphi 2009 Professional
 
#486
  Alt 24. Feb 2008, 09:49
Hi Andreas,
Das mit dem PatternCount hatte ich auch gerade herausgefunden.

Und das Video mit der Liste hat auch einen Nachteil : Du hast keinen Sound...

Außerdem befindet sich bei GUI das Formular immernoch nicht in der Mitte

Und das mit dem PNG Kompressor ist behoben:
Ich hatte in der ImageList als Kompressor PNG genommen und dachte das reicht, aber stattdessen muss ich noch den Kompressor auf PNG setzten (von der ImageList, die die Bilder lädt).

Und ich habe eine Frage: Und zwar könnte ich irgendwie Bilder vergrößern / verkleinern? Ich habe das Problem das die Grundgröße 64 px ist, aber ich habe den Spieler in 96 px und zwei Objekte in 32 px. Ich hätte aber gerne alles auf 64 px skaliert

MfG
xZise
Fabian
  Mit Zitat antworten Zitat
Benutzerbild von igel457
igel457

 
FreePascal / Lazarus
 
#487
  Alt 24. Feb 2008, 10:58
Das setzten des Kompressors sollte eigentlich nicht notwendig sein, sofern du die entsprechende Loader-Unit eingebunden hast.

Bilder kannst du einfach über die StretchDraw-Prozedur während der Laufzeit vergrößert/verkleinert darstellen. Anders musst du wohl zu einem Grafikprogramm deines Vertrauens greifen.

Wenn du sonst noch Fragen hast, melde dich einfach,
Andreas
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

 
Delphi 2009 Professional
 
#488
  Alt 24. Feb 2008, 14:19
Zitat von igel457:
[...]Bilder kannst du einfach über die StretchDraw-Prozedur während der Laufzeit vergrößert/verkleinert darstellen. Anders musst du wohl zu einem Grafikprogramm deines Vertrauens greifen.[...]
Hmmm, und wie meinst du das mit dem StrechDraw?

Weil wenn ich "<SpriteEngine>.Draw;" mache, was müsste ich dann umstellen?

Ich könnte natürlich auch die Bilder vergrößern/verkleinern.

MfG
xZise
Fabian
  Mit Zitat antworten Zitat
Benutzerbild von igel457
igel457

 
FreePascal / Lazarus
 
#489
  Alt 24. Feb 2008, 14:28
Achso, du möchtest Sprites in der Größe anpassen - dazu sollte es reichen die "Width" bzw. "Height" Property entsprechend einzustellen. Im Notfall musst du die Prozedur "DoDraw" deines Sprites überschreiben. Schau dazu einfach mal in den Quellcode von TImageSprite.DoDraw
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

 
Delphi 2009 Professional
 
#490
  Alt 24. Feb 2008, 15:18
Okay, dann werde ich wohl eher die Bilder auf eine Größe bringen.

Wo wir gerade bei Größe sind:
Kann ich irgendwie sagen, wann zwei Sprites kolidieren?
Weil ich habe einen Diamanten und eine schmale Person. Nun kolidieren die schon, sobald das eine Sprite das andere berührt.

Außerdem bekomme ich jetzt eine AV. Ich weiß zwar wie ich die auslöse, habe aber keine Ahnung, wie ich verhindere, dass sie ausgelöst wird ohne dabei den Auslöser zu entfernen. xD
Also ich habe mehrere Sprite Klassen:
Delphi-Quellcode:
TFrInteractiveObject = clas(TImageSprite);

TFrPlayer = class(TFrInteractiveObject);
Wenn nun ein Objekt vom Typ TFrPlayer sich bewegt rufe ich "Collision" auf und damit auch "DoCollision". Dort überprüfe ich, ob das Objekt, mit dem es kolidert von TFrInteractiveObject ist.
Nun bewege ich das weiter (wie die Person), und teste dann, ob das Objekt mir irgendwas koldiert (z.B. einer Wand).
Wenn ich die zweite Überprüfung entferne funzt alles, ansonsten bekomme ich eine AV, und bleibt in folgender Funktion hängen (Zeile 14).
Delphi-Quellcode:
procedure TSprite.Collision2;
var
  i: Integer;
begin
  //Cancel if this sprite doesn't support collisions.
  if CanDoCollisions then
  begin
    if (Self<>FEngine.FCollisionSprite) and
        OverlapRect(FEngine.FCollisionRect,BoundsRect) and
        TestCollision(FEngine.FCollisionSprite) then
    begin
      FEngine.FCollisionCount := FEngine.CollisionCount + 1;
      FEngine.FCollisionSprite.DoCollision(self, FEngine.FCollisionDone);
      if FEngine.FCollisionSprite.Deaded or (not FEngine.FCollisionSprite.CanDoCollisions) then
      begin
        FEngine.CollisionDone := true;
      end;
    end;
    if not FEngine.FCollisionDone then
    begin
      for i := 0 to FList.Count - 1 do
      begin
        FList[i].Collision2;
        if FEngine.CollisionDone then
        begin
          break;
        end;
      end;
    end;
  end;
end;
MfG
xZise
Fabian
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 49 von 103   « Erste     39474849 50515999     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 22:30 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