Delphi-PRAXiS
Seite 14 von 26   « Erste     4121314 151624     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Andorra 2D [Ver. 0.4.5.1, 31.12.08] (https://www.delphipraxis.net/81314-andorra-2d-%5Bver-0-4-5-1-31-12-08%5D.html)

Codewalker 13. Mär 2008 13:21

Re: Andorra 2D [Ver. 0.35, 04.03.08]
 
Ich arbeite immer noch an meinem Strategiespiel und ich finde das mit dem TAdGUIConnector eher schlecht zu benutzen, gerade bei sehr aufwändigen GUIs mit mehreren unabhängigen Forms. Hast du da auch noch eine Lösung für parat?

igel457 13. Mär 2008 13:33

Re: Andorra 2D [Ver. 0.35, 04.03.08]
 
Du kannst höchstens die Events "manuell" durchleiten - dazu kannst du dir ja einfach den Sourcecode des GUI-Connectors anschauen. Die GUI müsste ich sowieso um einiges optimieren, doch dazu habe ich (leider) nicht genug Zeit.

Looper 13. Mär 2008 13:40

Re: Andorra 2D [Ver. 0.35, 04.03.08]
 
Also das mit mehreren Surfaces finde ich richtig gut und das mit der pixelgenauen Pixelabfrage kann man auch immer mal wieder gut gabrauchen.

:arrow: Weiter so!

Codewalker 13. Mär 2008 14:47

Re: Andorra 2D [Ver. 0.35, 04.03.08]
 
Zitat:

Zitat von igel457
Die GUI müsste ich sowieso um einiges optimieren, doch dazu habe ich (leider) nicht genug Zeit.

Aber ist nicht eine vernünftige Bedienung eines Spiels und eine gelungene zeitgemäße Oberfläche viel wichtiger, als zusätzliche Effekte wie Shader? Ohne die GUI brauche ich z.B. gar nicht weitermachen, weil mein Spiel nicht bedienbar wird. Geht es nur mir so? Vielleicht kann man ja über die Roadmap nochmal diskutieren :wink:

DelphiNub 13. Mär 2008 15:40

Re: Andorra 2D [Ver. 0.35, 04.03.08]
 
Schreib dir doch dein eigenes GUI :P
Sooooo aufwendig is das nun auch wieder nicht ;)

Frei nach der Devise: "Nicht meckern, selber machen!"

igel457 13. Mär 2008 16:55

Re: Andorra 2D [Ver. 0.35, 04.03.08]
 
Wenn du mir sagst, was genau ich am GUI-System verändern soll, dann schaue ich mal, ob ich das hinbekomme.
Ich fände es aber auch Klasse, wenn mir jemand bei dem GUI-System helfen würde.
Außerdem sind Teile davon schon über drei Jahre alt und auch dementsprechend etwas "überarbeitbar".

igel457 14. Mär 2008 17:09

Re: Andorra 2D [Ver. 0.35, 04.03.08]
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe den internen Ereignisverwaltungscode des GUI-Systems neu geschrieben - jetzt sollten theoretisch ein paar Fehler entfallen sein und auch eine art Drag'n'Drop ist jetzt möglich. (Dabei ist der Code nur halb so lang wie vorher :gruebel: - Das kommt davon wenn man Code von vor drei Jahren verwendet.)

Außerdem habe ich eine "TAdTrackBar"-Komponente geschrieben - ein Bild davon befindet sich im Anhang. Als nächstes baue ich noch eine entsprechende "TAdScrollBar"-Komponente.

STS301 14. Mär 2008 17:29

Re: Andorra 2D [Ver. 0.35, 04.03.08]
 
sieht toll aus!!

Looper 14. Mär 2008 18:23

Re: Andorra 2D [Ver. 0.35, 04.03.08]
 
sieht wirklich gut aus. Jetzt weiß ich noch, was verbessert werden kann:
Bei OpenGL ist der Vollbildmodus noch nicht realisiert :wink:

mfg Looper

DelphiNub 14. Mär 2008 23:01

Re: Andorra 2D [Ver. 0.35, 04.03.08]
 
Zitat:

Zitat von Looper
Bei OpenGL ist der Vollbildmodus noch nicht realisiert

Hö? Vollbild mit OpenGL ist doch problemlos möglich, nur Antialias funktioniert nicht.

Looper 15. Mär 2008 07:50

Re: Andorra 2D [Ver. 0.35, 04.03.08]
 
Liste der Anhänge anzeigen (Anzahl: 2)
Dann habe ich vielleicht einen Fehler gefunden. Bei OpenGL funktioniert das Darstellen meiner GUI nicht richtig; sie wird zwar angezeigt, aber an der falschen Stelle.
Siehe Anhang.

Gibt es vielleicht eine Möglichkeit die GUI zu verschieben?

mfg Looper

Ebil 15. Mär 2008 12:06

Re: Andorra 2D [Ver. 0.35, 04.03.08]
 
Ich hab ein problem mit dem inizialisieren, so wie es im tutorial steht funktioniert es nicht, ich bekomme die fehlermeldung.
Der code sieht so aus:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  AdDraw := TAdDraw.Create(self);
  AdDraw.DllName := 'AndorraDX93D.dll';
if AdDraw.Initialize then
begin
  // Hier geht's gleich weiter
end
else
begin
  ShowMessage('Error while initializing Andorra 2D. Try to use another display'+
              'mode or use another video adapter.');
  halt; //<-- Schließt die komplette Anwendung
end;
end;
Ich nutzte Codegear Delphi 2007.
Auch wenn ich die Demos compiliere und starten will kommt der fehler:
[DCC Fehler] AdPng.pas(23): F1026 Datei nicht gefunden: 'PngImage.dcu' .
Aber die demos sollten doch ohne problem laufen oder nicht?
Wäre dankbar für hilfe, und danke für Andorra 2D.

Ebil

DelphiNub 15. Mär 2008 12:26

Re: Andorra 2D [Ver. 0.35, 04.03.08]
 
Meine initialisierung sieht so aus und funktioniert unter RAD 2007:

Delphi-Quellcode:
  AdDraw := TAdDraw.Create( nil );

  AdDraw.DllName := 'AndorraOGL.dll';
  //AdDraw.DllName:= 'AndorraDX93D.dll';
  AdDraw.Display.Width := 1024;
  AdDraw.Display.Height := 768;
  AdDraw.Display.BitCount := 32;
  AdDraw.Options:= [doFullscreen,doHardware];
Wegen der PngImage, hast du auch alle prereqs installiert? ^^
Zitat:

Um PNG-Bilder zu laden muss die Unit "AdPNG" zur Uses-Liste hinzugefügt werden. [...] Meist sind zum laden der Bilder weitere Bibliotheken nötig. Diese müssen unabhängig von Andorra 2D installiert werden. Für das PNG-Format ist die Bibliothek "PNGDelphi" (http://pngdelphi.sourceforge.net/) von nöten.
Wer lesen kann ist klar im Vorteil

igel457 15. Mär 2008 13:26

Re: Andorra 2D [Ver. 0.35, 04.03.08]
 
@Looper
Kannst du mir mal eine Beispielanwendung geben - so kann ich den Fehler leider nicht nachvollziehen.

@Ebil
Lass einfach mal das Einbinden der Unit "AdPNG" weg - die brauchst du erst, wenn du PNGs laden willst (so wie dies mein Vorredner auch schon gesagt hat)

inherited 15. Mär 2008 17:14

Re: Andorra 2D [Ver. 0.35, 04.03.08]
 
Du solltest die Projekt .lpi-Datei im 0.35-Paket für die OpenGL-Library mit in das Paket legen, nicht nur die .lpr, oder ist das absicht?

Edit: Die Lib lässt sich zwar kompilieren, aber er will sie nicht laden, das Initialisieren schlägt fehl (Linux + lazarus)
Delphi-Quellcode:
  AdDraw := TAdDraw.Create(self);
  AdDraw.DllName := 'libAndorraOGLLaz.so';
  if AdDraw.Initialize then
  begin
    Application.OnIdle := @Idle;
  end
  else
  begin
    ShowMessage('Error while initializing Andorra 2D. Try to use another display'+ //Wird ausgelöst
                'mode or another video adapter.');
    halt;
  end;

igel457 15. Mär 2008 22:03

Re: Andorra 2D [Ver. 0.35, 04.03.08]
 
Schön, dass es auch mal jemand unter Linux testet.

Die *.lpi habe ich wohl vergessen - ich war mir eigentlich sicher, dass ich sie eingepackt habe.

An welcher Stelle genau schlägt die Initialisierung fehl? Gehe die "AdDraw.Initialize"-Methode einfach mal Zeile für Zeile durch und sage mir, wo es hapert.

Ich wäre froh, wenn es mal noch bei jemand anderem außer mir unter Linux läuft...

inherited 15. Mär 2008 22:51

Re: Andorra 2D [Ver. 0.35, 04.03.08]
 
Der Test "if AdDllLoader.LibraryLoaded then" zu beginn der Initialize-Methode schlägt fehl.
Edit: was heißt schlägt fehl, liefert false meine ich.

igel457 16. Mär 2008 10:07

Re: Andorra 2D [Ver. 0.35, 04.03.08]
 
Hast du die Shared Object Datei (*.so) auch zum Suchpfad (LD_LIBRARY_PATH) hinzugefügt?

inherited 16. Mär 2008 10:13

Re: Andorra 2D [Ver. 0.35, 04.03.08]
 
Ich hatte sie in das Programmverzeichnis gepackt, reicht das nicht?
Wo setze ich den Suchpfad?

igel457 16. Mär 2008 10:17

Re: Andorra 2D [Ver. 0.35, 04.03.08]
 
Nein unter Linux langt das leider nicht.

Du musst dein Programm über die Kommandozeile mit
Code:
LD_LIBRARY_PATH=. ./DeinExecutable
starten.

inherited 16. Mär 2008 10:18

Re: Andorra 2D [Ver. 0.35, 04.03.08]
 
Hast recht, hätte schwören können das bräuchte man nur für verzeichnisse != .
Danke, es funktioniert.

Berlinermauer 16. Mär 2008 10:21

Re: Andorra 2D [Ver. 0.35, 04.03.08]
 
wie wäre es mit 3D Support, ich weiß viel Arbeit, aber Andorra 5D is cool ^^(2+3=5) :gruebel: :wall: :zwinker:

inherited 16. Mär 2008 10:24

Re: Andorra 2D [Ver. 0.35, 04.03.08]
 
Bis auf eine kleine unschönheit beim Beenden:
Zitat:

get_xvisualinfo nitems_return=1
An unhandled exception occurred at $3E800000 :
EAccessViolation : Access violation
$3E800000

Looper 16. Mär 2008 10:24

Re: Andorra 2D [Ver. 0.35, 04.03.08]
 
Zitat:

Zitat von Berlinermauer
wie wäre es mit 3D Support, ich weiß viel Arbeit, aber Andorra 5D is cool ^^(2+3=5) :gruebel: :wall: :zwinker:

soll doch noch umgesetzt werden :wink:

mfg Looper

igel457 16. Mär 2008 10:25

Re: Andorra 2D [Ver. 0.35, 04.03.08]
 
Du kannst ja auch mal ausprobieren, den kompletten Pfad zur Bibliothek anzugeben.
Wenn du das Programm nur über die Kommandozeile starten kannst, wird das Debuggen nämlich zum Horror, dann musst du nämlich GDB verwenden.

Eine andere (wenn auch nicht so schöne Lösung) ist die Bibliothek in das Lib-Verzeichnis zu kopieren.

@Berlinermauer
Es wird nur die Möglichkeit geben 3D-Modelle zu laden. Damit kann man dann nur 2,5D Spiele programmieren - also alles wo die dritte Dimension nicht so wirklich ausgenutzt wird - also RPGs, Jump'n'Runs im Smash-Brothers Stil, RTS-Spiele etc.

@Inherited
Bug im TOpenGLContext von Lazarus - da kann ich nix für

Looper 17. Mär 2008 16:45

Re: Andorra 2D [Ver. 0.35, 04.03.08]
 
Hi,
ich progge ja gerade an einem Jump and Run Spiel und da ist mir aufgefallen, was man verbessern könnte, wenn es nicht allzu viele Umstände macht:
Die Funktion
Delphi-Quellcode:
function GetSpriteAt(X,Y:integer):TSprite;virtual;
hat lediglich die X- und Y-Koordinate als Parameter. Vielleicht kann man da noch die Z-Koordinate einbauen.
Denn wenn man z.B. ein Jump and Run Spiel mit mehreren Ebenen programmiert, und ein Bild im Hintergrund löschen möchte und nur die Position weiß, aber nicht den Index, ist das Löschen des Sprites nur durch Umwege möglich.

mfg Looper

inherited 17. Mär 2008 19:51

Re: Andorra 2D [Ver. 0.35, 04.03.08]
 
Unterstützt Andorra eigentlich Targa? Wenn nicht: Bau das bitte ein, währe mehr als nützlich!

igel457 17. Mär 2008 20:00

Re: Andorra 2D [Ver. 0.35, 04.03.08]
 
Hallo,

zu dem GetSpriteAt - wird gemacht. Du kannst ja allerdings auch manuell suchen - schau dir einfach mal den Sourcecode der Methode an.

Meinst du TGA? Ja, das ist über DevIL oder FreeImage möglich. Einfach die Entsprechende Bibliothek runterladen, kompi- und installieren und die Andorra Schnittstellenunit (AdDevIL oder AdFreeImage) einbinden.

Mit FreeImage kannst du dann über 30 Formate laden.

PS: Du benötigst diese Bibliotheken unter Lazarus sogar um PNG-Komprimierte Andorra Image Streams zu laden - also *.ail *.axg Dateien, die PNG als Kompressor nutzen.

Looper 17. Mär 2008 20:33

Re: Andorra 2D [Ver. 0.35, 04.03.08]
 
Zitat:

Zitat von igel457
Hallo,

zu dem GetSpriteAt - wird gemacht. Du kannst ja allerdings auch manuell suchen - schau dir einfach mal den Sourcecode der Methode an.

Meinst du TGA? Ja, das ist über DevIL oder FreeImage möglich. Einfach die Entsprechende Bibliothek runterladen, kompi- und installieren und die Andorra Schnittstellenunit (AdDevIL oder AdFreeImage) einbinden.

Mit FreeImage kannst du dann über 30 Formate laden.

PS: Du benötigst diese Bibliotheken unter Lazarus sogar um PNG-Komprimierte Andorra Image Streams zu laden - also *.ail *.axg Dateien, die PNG als Kompressor nutzen.

Jo habe ich gemacht.

pierredrks 20. Mär 2008 13:59

Re: Andorra 2D [Ver. 0.35, 04.03.08]
 
@inherited
Mit folgender Zeile reicht es aus wenn die .so im Verzeichnis deiner Binary liegt.
AdDraw.DllName:='./libAndorraOGLLaz.so'

pierredrks 20. Mär 2008 19:42

Re: Andorra 2D [Ver. 0.35, 04.03.08]
 
Ich habe Probleme wenn ich die Beispiele compilieren will. Lazarus jammert immer über die AdPNG.pas. Liegt das an Linux oder an mir?

Die Muhkuh 20. Mär 2008 19:49

Re: Andorra 2D [Ver. 0.35, 04.03.08]
 
Was jammert es denn?

pierredrks 20. Mär 2008 20:46

Re: Andorra 2D [Ver. 0.35, 04.03.08]
 
/AdPNG.pas(23,63) Fatal: Can't find unit PngImage used by AdPNG

Der PerformanceCounter aus Tutorial: die erste Grafik führt ebenfalls zu einer Fehlermeldung (in etwa TPerfCounter ist nicht bekannt).

igel457 21. Mär 2008 11:23

Re: Andorra 2D [Ver. 0.35, 04.03.08]
 
Hallo,

AdPNG verwendet die unit PNGImage, die Delphi/Windows Abhängigkeiten hat. Um trotzdem PNGs laden zu können, empfiehlt sich der Einsatz von "AdFreeImage" oder "AdDevIL", die einsprechende Cross-Plattform Bibliotheken verwenden.

Der PerformanceCounter heißt TAdPerformanceCounter und befindet sich in der Unit "AdPerformanceCounter" - mein Fehler.

Wenn es noch fragen gibt, meldet euch einfach,
Andreas

Mirco G. 24. Mär 2008 23:35

Re: Andorra 2D [Ver. 0.35, 04.03.08]
 
Hallo Allerseits!
Zuerst einmal ein riesen Lob an das Forum und seine tollen Admins nebst Moderatoren.
Nicht zu vergessen all die User :wink:
Ich bin nun seit gut einem halbem Jahr angemeldet und musste dank der vielen Threads und der Suche noch nie eine eigene Frage stellen, doch jetzt ist es soweit.

Obwohl Newton selbst kein Teil von Andorra ist stelle ich die Frage hier da ich denke, dass sie hier am besten hinein passt.

Ich sitze (manchmal steh' ich auch :P ) seit geraumer Zeit an einem Weltraum-'Spiel' in dem man das Geschehen von oben betrachtet. Nun möchte ich Newton dazu verwenden meine Schiffe Physikalisch korrekt durch den Raum flitzen zu lassen :-D
Bloß fallen sie immer nach unten. Die vertikale Anziehungskraft scheint eine Standarteinstellung zu sein.
[Frage]
Kann man Umgebungseigenschaften für Newton Festlegen?
In meinem Fall wäre das ja dann 'kein Ortsfaktor'.

Eigentlich eine ziemlich banale Frage, aber weil es so wenig Beispielprogramme und Tutorials zu Newton in Verbindung mit Andorra gibt, bin ich nirgens auf eine Antwort gestoßen.

Vielen Dank. So wie ich das rege Treiben hier kenne werde ich Bald eine Atwort haben :mrgreen:

PS: Kann gut sein, dass die Frage bereits gestellt wurde. Dann habe ich sie beim (gründlichen :P ) Überfliegen dieses schon so riesigen Threads übersehen und bitte dieses zweite Mal zu entschuldigen...

[OT]Ich sehe gerade: Ich bin die #555... überall eins mehr und dieser Post wäre böse^^

3_of_8 24. Mär 2008 23:41

Re: Andorra 2D [Ver. 0.35, 04.03.08]
 
Also in Newton selbst ist sowas nicht standardmäßig drin. Wenn man da Schwerkraft will, muss man die selbst hinzuaddieren.

Hast du irgendwo in deinem momentanen Code sowas wie einen Aufruf von NewtonBodyAddForce?

(Eigentlich müsstest du - glaube ich - für diese Frage einen eigenen Thread erstellen)

Mirco G. 25. Mär 2008 10:52

Re: Andorra 2D [Ver. 0.35, 04.03.08]
 
Verzeihung, hier der neue Thread :arrow: http://www.delphipraxis.net/internal...=863395#863395

STS301 25. Mär 2008 16:51

Re: Andorra 2D [Ver. 0.35, 04.03.08]
 
hi ich habe es mit Lazarus unter XP probiert und er sagt mir ohne, dass ich eine Unit einbinde,
:Andorracompile_zu.pas(33,10) Error: Identifier not found "AdDraw"
Andorracompile_zu.pas(33,20) Error: Identifier not found "TAdDraw"
Andorracompile_zu.pas(33,27) Fatal: Syntax error, ";" expected but "(" found

was mache ich falsch

Code:

Delphi-Quellcode:
{$MODE DELPHI}

interface

uses
  Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs,
  ButtonPanel;

type

  { TForm1 }

  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;

implementation

{ TForm1 }

procedure TForm1.FormCreate(Sender: TObject);
begin
  AdDraw := TAdDraw.Create(self);
  AdDraw.DllName := 'C:\Documents and Settings\Blockbuster\Desktop\QuickDesktop\Andorra\ad2d_35_ALL\ad2d_35\bin\AndorraOGLLaz.dll';
  Application.OnIdle := @Idle;
  AdDraw.Initialize;
end;

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

procedure TForm1.Idle(Sender: TObject; var Done:boolean);
begin
  AdDraw.ClearSurface(0);
  AdDraw.BeginScene;
  with AdDraw.Canvas do
  begin
    Font := AdDraw.Fonts.GenerateFont('Arial', 24, []);
    TextOut(0,0,'Andorra 2D...');
    Font := AdDraw.Fonts.GenerateFont('Arial', 10, []);
    TextOut(0,30,'...works with Lazarus too');
  end;
  AdDraw.EndScene;
  AdDraw.Flip;
end;

igel457 25. Mär 2008 17:14

Re: Andorra 2D [Ver. 0.35, 04.03.08]
 
Zitat:

Zitat von STS301
ohne, dass ich eine Unit einbinde

Genau daran liegt es.

STS301 25. Mär 2008 17:43

Re: Andorra 2D [Ver. 0.35, 04.03.08]
 
Liste der Anhänge anzeigen (Anzahl: 1)
wenn ich AdDraws, AdClasses, AdTypes einbinde kommt das:
Andorracompile_zu.pas(36,30) Error: Identifier not found "Idle"
Andorracompile_zu.pas(45,22) Error: method identifier expected
Andorracompile_zu.pas(47,9) Error: Identifier not found "AdDraw"
Andorracompile_zu.pas(47,22) Error: Illegal expression
Andorracompile_zu.pas(47,22) Fatal: Syntax error, ";" expected but "(" found

bei den Canvas habe ich versucht einen Strich von links oben nach rechts unten laufen zu lassen, dann ist aber das Passiert (siehe Anhang)
startposition war (0,0) und mit -10,0 hat sich nichts getan


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:26 Uhr.
Seite 14 von 26   « Erste     4121314 151624     Letzte »    

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