![]() |
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?
|
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.
|
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! |
Re: Andorra 2D [Ver. 0.35, 04.03.08]
Zitat:
|
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!" |
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". |
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. |
Re: Andorra 2D [Ver. 0.35, 04.03.08]
sieht toll aus!!
|
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 |
Re: Andorra 2D [Ver. 0.35, 04.03.08]
Zitat:
|
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 |
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:
Ich nutzte Codegear Delphi 2007.
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; 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 |
Re: Andorra 2D [Ver. 0.35, 04.03.08]
Meine initialisierung sieht so aus und funktioniert unter RAD 2007:
Delphi-Quellcode:
Wegen der PngImage, hast du auch alle prereqs installiert? ^^
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]; Zitat:
|
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) |
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; |
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... |
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. |
Re: Andorra 2D [Ver. 0.35, 04.03.08]
Hast du die Shared Object Datei (*.so) auch zum Suchpfad (LD_LIBRARY_PATH) hinzugefügt?
|
Re: Andorra 2D [Ver. 0.35, 04.03.08]
Ich hatte sie in das Programmverzeichnis gepackt, reicht das nicht?
Wo setze ich den Suchpfad? |
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:
starten.
LD_LIBRARY_PATH=. ./DeinExecutable
|
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. |
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:
|
Re: Andorra 2D [Ver. 0.35, 04.03.08]
Bis auf eine kleine unschönheit beim Beenden:
Zitat:
|
Re: Andorra 2D [Ver. 0.35, 04.03.08]
Zitat:
mfg Looper |
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 |
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:
hat lediglich die X- und Y-Koordinate als Parameter. Vielleicht kann man da noch die Z-Koordinate einbauen.
function GetSpriteAt(X,Y:integer):TSprite;virtual;
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 |
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!
|
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. |
Re: Andorra 2D [Ver. 0.35, 04.03.08]
Zitat:
|
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' |
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?
|
Re: Andorra 2D [Ver. 0.35, 04.03.08]
Was jammert es denn?
|
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). |
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 |
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^^ |
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) |
Re: Andorra 2D [Ver. 0.35, 04.03.08]
Verzeihung, hier der neue Thread :arrow:
![]() |
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; |
Re: Andorra 2D [Ver. 0.35, 04.03.08]
Zitat:
|
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. |
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