Delphi-PRAXiS
Seite 25 von 26   « Erste     15232425 26      

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)

igel457 24. Aug 2009 14:59

Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
 
z.B. AdImageList.Items[0]

Vasco da Gama 24. Aug 2009 15:08

Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
 
Danke, war eigentlich logisch, stand ich mal wieder auf dem Schlauch...
Aber da erhalte ich den Fehler:
Zitat:

[DCC Fehler] Unit1.pas(773): E2010 Inkompatible Typen: 'TGraphic' und 'TAdBitmap'
in folgender Zeile:
Delphi-Quellcode:
  AdGUIImage.Picture.LoadFromGraphic(bmp);

igel457 24. Aug 2009 17:03

Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
 
Oh, das ist dann ein Fehler im Quellcode - der Parameter zu Übergabe müsste eigentlich vom Typ TObject sein. Wenn du das entsprechend umänderst sollte es gehen.

fui-tak 24. Aug 2009 17:31

Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
 
Liste der Anhänge anzeigen (Anzahl: 2)
Zitat:

Zitat von xZise
Naja, weil dir ein TPoint nicht hilft. Deshalb habe ich eine Frage zu deinem Problem: Werden die Bilder mit der normalen Größe dargestellt, sie sollten aber verkleinert werden?

Also du hast zwei Sprites mit dem Abstand von 48 px aber die Grafik auf diesem Sprite ist 64px breit und deshalb sind 16px (des 1.) unter dem benachbarten Sprite (dem 2.)?
Ich bin mir nicht mehr sicher, aber ich glaube, du musst die Sprites selber auch verkleinern.

MfG
xZise



Ähm nein...^^ zur Verdeutlichung hab ich mal 2 Screenshots gemacht. Das ganze soll so aussehen, wie im ersten beigefügten Bild (TImageLevelEditor.jpg) (das ist noch mit TImages)
Aber es sieht so aus wie im nächsten Bild (AndorraSpriteLevelEditor.jpg)

Alle Sprites und TImages haben als Breite und Höhe 48 zugewiesen bekommen

Vasco da Gama 24. Aug 2009 17:55

Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
 
Danke Andreas, damit gehts :)

Zu dir fui-tak, da fällt mit wirklich nichts dazu ein... :pale:

Vasco da Gama 26. Aug 2009 08:56

Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
 
Hi, ich hab schon wieder eine Frage:
Mit einem BackgroundSprite kann man sich ja einen Untergrund sinnvoll aufbauen.
KAnn ich damit aber auch bewerkstelligen, dass sich an einem bestimmten Ort z.B. Wasser befindet?

Wisst ihr was ich meine?

mfG :dp:

xZise 26. Aug 2009 11:23

Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
 
Naja indem du einen "Wassersprite" nimmst ;)

Zitat:

Zitat von fui-tak
Ähm nein...^^ zur Verdeutlichung hab ich mal 2 Screenshots gemacht. Das ganze soll so aussehen, wie im ersten beigefügten Bild (TImageLevelEditor.jpg) (das ist noch mit TImages)
Aber es sieht so aus wie im nächsten Bild (AndorraSpriteLevelEditor.jpg)

Alle Sprites und TImages haben als Breite und Höhe 48 zugewiesen bekommen

Joar das ist aber auch ein komischer "Skalierungsfaktor" :D

Und du veränderst die Größe nirgends? Auch nicht mit Zoom o.ä.? Erstelle ein neues Projekt und baue nur das ein was zur Anzeige eines Tiles notwendig ist. Vielleicht kommt man dann den "Fehler" auf die Spur?

Und ich bin mir nicht sicher, aber muss man nicht auch die Größe des Inhalts ändern? Also so ähnlich wie bei TImage wo man auch das Picture ändern muss (u.U.)?

MfG
xZise

fui-tak 26. Aug 2009 12:49

Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
 
Zitat:

Zitat von xZise

Zitat:

Zitat von fui-tak
Alle Sprites und TImages haben als Breite und Höhe 48 zugewiesen bekommen

Joar das ist aber auch ein komischer "Skalierungsfaktor" :D

Und du veränderst die Größe nirgends? Auch nicht mit Zoom o.ä.? Erstelle ein neues Projekt und baue nur das ein was zur Anzeige eines Tiles notwendig ist. Vielleicht kommt man dann den "Fehler" auf die Spur?

Und ich bin mir nicht sicher, aber muss man nicht auch die Größe des Inhalts ändern? Also so ähnlich wie bei TImage wo man auch das Picture ändern muss (u.U.)?

MfG
xZise

Am Skalierungsfaktor "48" liegt es nicht, das ganze ist bei 64 (der Originalgröße der Bilder) immernoch vergrößert. Normalerweise werden die Bilder in Andorra Sprites, wenn man nach der Bildzuweisung die Größen zuweist automatisch gestreckt, so wie wenn man bei TImage stretch := true stellt

Wenn ich Zeit habe, werde ich mal deinem Rat folgen, ein neues Programm zu erstellen und dann mal zu gucken

Trotzdem Danke an alle, die helfen wollten!

fui-tak 30. Aug 2009 12:58

Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
 
Ich hab mein Problem jetzt behoben gekriegt. Der Fehler war, dass ich die Panelgröße, des Panels auf dem die Sprites drauf sind, an die Anzahl der Sprites angepasst habe. Dadurch ist dieser Effekt entstanden. Jetzt habe ich als Panelgröße 1024 * 768 genommen und alles passt.
Man sollte also, den Untergrund schön groß wählen und dann nicht mehr daran rumspielen

Vasco da Gama 30. Aug 2009 18:33

Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
 
Ahso, sehr schön :)

Ich hab dann auch mal eine Frage:

Kann man einem Sprite mehrere Bilder zuweisen?

mfG

EDIT: Eine Weitere Frage:
Wenn ich mit der Maus wohin klicke, auf einem Andorra Fenster mit 800 mal 600 als abmessungen, dann kanns z.B. 50,200 sein. Aber wie bekomme ich den angeklickten Punkt in AdDraw Koordinaten raus, diese können ja z.B. 5000,20000 sein...
mfG :gruebel:

Vasco da Gama 1. Sep 2009 18:36

Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
 
Weiß das niemand? Nichtmal der gute Igel? :gruebel:
mfG :dp: trotzdem

igel457 1. Sep 2009 18:49

Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
 
1. Ja du kannst einem Sprite mehrere Bilder zuweisen, wenn du eine entsprechende Klasse davon ableitest, die das unterstützt.
2. Das musst du entsprechend Umrechnen. Du kennst die Größe des Viewports, die Größe des Koordinatensystems und die Position deiner Spriteengine.

Vasco da Gama 2. Sep 2009 10:44

Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
 
Hi Andreas, vielen Dank für deine Antwort.

zu 1.:
Das bekomme ich wohl vorerst nicht hin.

zu 2.:
Da viel mir jetzt was auf.
mit
Delphi-Quellcode:
   p := Mouse.CursorPos;
   Showmessage('X: '+IntToStr(p.X) +#13#10+ 'Y: '+IntToStr(p.Y));
im MouseDown Ereignis des Forms erhalte ich immer Werte, relativ zu dem Punkt, der zuletzt angeklickt wurde.
Kann sich das jemand erklären, bzw. kennt da jemand eine Lösung?

mfG und Danke :dp:

fui-tak 2. Sep 2009 13:07

Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
 
Meiner Erfahrung nach gibt Mouse.CursorPos die Koordinaten der Maus auf dem Bildschirm an, also den Abstand von oberer und linker Monitorkante

Vasco da Gama 2. Sep 2009 14:37

Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
 
Hi, tatsächlich hast du Recht, ich weiß auch nicht, was da vorhin falsch war.
Allerdings, bei folgender DoMove procedure
Delphi-Quellcode:
procedure TEinheit.DoMove(TimeGap: Double);
var A, B, AB, BB: Integer;
begin
inherited DoMove(TimeGap);
A := round(X);
B := round(X+200);
AB := round(Y);
BB := round(Y+200);


if (Aim.X in [A..B]) and (Aim.Y in [AB..BB]) then // er bleibt stehen
begin
  AnimActive := false;
  AnimLoop := false;
  FXSpeed := 0;
  FYSpeed := 0;
  case FDirection of //das kommt später
    dirS: AnimPos := 64;
    dirSW: ;
    dirW: ;
    dirNW: ;
    dirN: ;
    dirNE: ;
    dirE: ;
    dirSE: ;
  end;


end
else // er läuft weiter
begin
    X := X + FXSpeed * TimeGap;
    Y := Y + FYSpeed * TimeGap;
end;

Collision;
end;
bleibt die Figur niemals stehen...

Weiters durchläuft er auch ein Haus bei folgender DoCollision:
Delphi-Quellcode:
procedure TEinheit.DoCollision(Sprite: TSprite; var Done: Boolean);
begin
inherited;
  if (Sprite is THaus) then
  begin
    AnimActive := false;
    AnimLoop := false;
    FXSpeed := 0;
    FYSpeed := 0;
    case FDirection of
      dirS: AnimPos := 64;
      dirSW: ;
      dirW: ;
      dirNW: ;
      dirN: ;
      dirNE: ;
      dirE: ;
      dirSE: ;
    end;
  end;

end;

Vasco da Gama 2. Sep 2009 16:57

Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
 
kleine ergänzung:

Aim wird so gesetzt:
Delphi-Quellcode:
procedure TEinheit.Gehen(P: TPoint);
begin
  FYSpeed := 0;
  FXSpeed := 0;
  Aim := p;
  p.X := p.X - round(X);
  p.Y := p.Y - round(Y);
  FXSpeed := Speed * p.X / sqrt(p.X * p.X + p.Y * p.Y);
  FYSpeed := Speed * p.Y / sqrt(p.X * p.X + p.Y * p.Y);
  AnimLoop := true;
  AnimActive := true;
  SetLength(Form2.men, Length(Form2.men)+1);
  Form2.men[Length(Form2.men)-1] := TEinheit.Create(Form2.AdSpriteEngine2);

end;
und zu gehen komm ich so, in der MouseDown procedure:
Delphi-Quellcode:
if (Button = mbRight) then
  begin
    if Length(men) > 0 then
    begin
    for i := 0 to Length(men)-1 do
    begin
      if men[i].angeklickt then
      begin
          men[i].Gehen(P);
      end;
    end;
    end;

  end;

Vasco da Gama 3. Sep 2009 10:48

Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
 
Hat sich erledigt, konnte das Problem lösen.

Vasco da Gama 5. Sep 2009 17:21

Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
 
Jetzt hab ich aber eine weitere Frage.
Eine Klasse wurde von TImageSprite abgeleitet.
im DoMove dieser rufe ich ganz am Ende:
Delphi-Quellcode:
Collision;
auf.
An diese Stelle komme ich immer, allerdings wird die DoCollision procedure niemals ausgeführt. Muss ich für Kollisionen noch etwas beachten?

Danke mfG

XXcD 5. Sep 2009 17:41

Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
 
Schau dir mal die Demo von WormHunter an.
Ich glaube die müsste dir da weiterhelfen

Vasco da Gama 5. Sep 2009 17:46

Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
 
Hi, diese Demo hab ich mir bereits angeschaut, allerdings konnte ich nur feststellen, dass ich am Ende von DoMove, Collision; aufrufen muss.
Und dann in DoCollision die genaue Behandlung.(if sprite is ... etc.)
Genau dies mache ich auch, muss ich für Kollisionen eventuell irgendwelche Befehle ich die Idle procedure schreiben?

mfG

XXcD 5. Sep 2009 17:58

Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
 
Ich schau mir de Demo gerade an erste Ergebnisse habe ich schon:

Delphi-Quellcode:
Zeile 194: AdPixelCollisionTester := TAdSpritePixelCollisionTester.Create(AdDraw);

Zeile 215: CollisionTester := AdPixelCollisionTester;

Zeile 493: procedure TMainCharacter.DoCollision(Sprite: TSprite; var Done: boolean);...

Zeile 521: Collision;
Also Zeile 194 und 215 denke ich mal hast du vergessen, ich vermute mal deswegen gehts nicht.

Vasco da Gama 5. Sep 2009 18:10

Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
 
Hmmm. Nachdem ich diese Zeilen hinzufügte (und am Ende natürlich das Free) ändert sich leider nichts... :wiejetzt:

Aber vielen Dank für dein Interesse :dp:

XXcD 5. Sep 2009 18:12

Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
 
Zeig mal deinen Code vielleicht kann ich dir dann wieterhelfen.

Vasco da Gama 5. Sep 2009 18:13

Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
 
Liste der Anhänge anzeigen (Anzahl: 1)
Der ist ziemlich lang, ich kann dir ja mal die Unit anhängen.

Vasco da Gama 6. Sep 2009 12:36

Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
 
Konntest du bereits was rausfinden?

XXcD 6. Sep 2009 12:50

Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
 
Also ich hab mir den Quelltext jetzt angeschaut, aber hab selber schon lange nichts mehr gemacht mit Andorra.
Vielleicht schreibst du mal direkt ins Forum von Andorra die können dir bestimmt weiter helfen.

Vasco da Gama 6. Sep 2009 16:26

Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
 
Dafür müsst ich mich bei SourceForge anmelden.... :?

oneP 12. Sep 2009 18:10

Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
 
Hallo!

ich hoffe ich störe nicht wenn ich jetzt so zwischen rein Frage.

ich habe ein kleines Mohrhuhn-Spiel aus reinem Delphi erstellt.

Jetzt versuche ich es nach Andorra2D umzuprogrammieren. Doch ich habe ein Problem:
beim Mohrhuhn habe ich hingekriegt das der Hintergrund und die Hühner, die auf dem Formular sind, gescrollt werden. Das heißt wenn der Cursor am linken oder rechten Rand ist, dann bewegen sich alle images (mit eiem Timer) um z.B 10 Pixel nach links/rechts.

Jetzt will ich das mit andorra genauso machen. Mit dem Timer geht das, jedoch wird nur das zuletzt erstellte Huhn veschoben.
Meine Frage: wie kann ich die Figur aus der klasse TFigur aus dem Andorra2d tutorial (die erste Grafik/die Spriteengine) so erstellen, dass jede Figur angesprochen werden kann? geht das etwa mit einem Array(was bei mir nicht funktioniert hat...)? Oder sonst irgendwie anders?

wäre dankbar für Hilfe

XXcD 12. Sep 2009 18:16

Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
 
Warum bewegst du nicht einfach die kamera nach links oder rechts.
Müsste eigentlich einfacher sein.

Schau dir mal die Demo von Bounce an da funktioniert das mit den Pfeiltasten.
Müsstest du dann nur noch so umschreiben, dass sich die kamera bewegt wenn du die maus nach links oder rechts bewegst

Edit: Hier ist der code:
Delphi-Quellcode:
  if key = AVK_LEFT then
    AdSpriteEngine.X := AdSpriteEngine.X + 10;

  if key = AVK_RIGHT then
    AdSpriteEngine.X := AdSpriteEngine.X - 10;

  if key = AVK_UP then
    AdSpriteEngine.Y := AdSpriteEngine.Y + 10;

  if key = AVK_DOWN then
    AdSpriteEngine.Y := AdSpriteEngine.Y - 10;

oneP 12. Sep 2009 19:01

Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
 
Danke für die schnelle Antwort!

Aber wo finde ich die DEmo von Bounce?

igel457 12. Sep 2009 19:26

Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
 
Ich glaube er meint die Andorra 2D "Bounce"-Demo. Die ist im Verzeichnis "demos/SpriteEngine/Bounce/"

Ebil 12. Sep 2009 23:57

Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
 
Hallo,

Hab nen problem.
Ich klapper erstmal meine alten AD2d versuche ab, und bin mir ziemlich sicher das es funktioniert hat, aber nun hab ich probleme:
Delphi-Quellcode:
ImgList.Items[0].Draw(AdDraw,0,0,0);
Bei der zeile haperts.
Ob ich nun Find, oder Items verwende ist egal, der fehler ist der selbe, welcher weiss ich selbst nicht genau denn es erscheint nur eine Access Violation obwohl ich alles created und gefreed hab...
Die Bilder sind auch sicher in der ImgList vorhanden.

Inizialisierung..
Delphi-Quellcode:
  if AdDraw.Initialize then
  begin
    ImgList := TAdImageList.Create(AdDraw);
    ImgList.LoadFromFile(ExtractFilePath(ParamStr(0))+'imgs/imgs.ail');
    ImgList.Restore;
    Timer.Enabled := true;

  end.....
Also woran kanns liegen? Ohne die oben genannte zeil( genauer gesagt ohne Das Draw! Funktioniert alles, natürlich wird dann nichts gezeichnet ;P

LG Ebil

igel457 14. Sep 2009 21:53

Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
 
Hallo,

frei nach dem Motto "was der Daniel kann, kann ich schon lange ;-)", habe ich ein kurzes (~12 Min) Video erstellt, das ein neues Feature der kommenden Andorra 2D-Version ("It comes when it's done") demonstriert: Das neue "Registrations Server"-Pluginsystem, welches nicht nur mit Andorra 2D verwendet werden kann, sondern sich auch prima für andere Anwendungen eignet.

Das Video kann hier angeschaut werden:
http://www.vimeo.com/6577988

Für alle mit relativ schneller Internetverbindung (sprich DSL) empfehle ich die "HD"-Variante, aber auch in der "SD"-Version lassen sich alle Quelltexte problemlos lesen.

Viel Spaß mit dem Video,
ich bin auf euer Feedback gespannt,
Andreas

@Alle anderen: Bitte bitte stellt eure Fragen in einem Extra-Thread. Dieser Thread soll eigentlich in erster Linie zur Diskussion um das Projekt ansich dienen! Vielleicht könnte sich da auch mal ein Moderator einschalten.

oneP 11. Nov 2009 14:47

Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
 
Hallo,


hab eine kurze Frage zu dem Andorra Tutorial.
Wie kann man die Objekte, die sich im Programm bewegen so erstellen, dass eine Aktion ausgelößt wird (oder das Objekt verschwindet) sobald man auf diese Klickt?
Also anders ausgedrückt, wie macht man jedes Objekt sozusagen individuell "ansprechbar" ?

Hoffe man kann mir helfen


EDIT: sorry hab das "Kleingedruckte" nicht gesehn^^ werd ein extra thread öffnen

oneP

Romi 19. Dez 2009 17:26

Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
 
Ich versuche gerade Andorra unter MacOS (Snow Leopard) mit Lazarus (Daily-Build vom 19.12.2009, da dort ein wichtiger MacOS Fix eingepflegt wurde) zu kompilieren. Dazu habe ich mir einfach mal das Linux-Tutorial geschnappt, jedoch scheitert der Compiler schon früher, als das Tutorial einsetzt:

Zitat:

/Users/roman/Documents/Projekte/ad2d_451/src/AdVCLWindow.pas(1,1) Fatal: Can't find unit Windows used by AdVCLWindow
Ich nehme mal an, dass es keine Window-Unit in Freepascal gibt? Ich kompiliere eigentlich das Non-VCL Demoprojekt, wieso springt er dabei überhaupt in die AdVCLWindow? Jemand eine Idee, wie ich da weiter kommen könnte?

Danke schonmal,
Roman

/e: Ich habe es mal in diesen Thread geschrieben, weil es sich ja um etwas grundlegendes handelt - schliesslich wirbt Andorra mit seiner (ihrer?) Plattformunabhängigkeit ;)

mimi 19. Dez 2009 18:34

Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
 
Schau dir mal unter den Kompiliere Einstellungen die LCL-Schnittelle an.
Wenn die "Windows", in den Uses-Klausel Auftaucht, kannst du sie löschen. Eventuell musst du dann noch lcltype, lclinft und lclproc einfügen.

So wie es sich anhört verwendest du das Falsche Andorra "AdVCLWindow". Bei Lazarus heiß die VCL LCL.

Romi 19. Dez 2009 19:00

Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
 
Danke für deine Antwort. Leider kann Lazarus die Unit lclinft nicht finden.

Zitat:

So wie es sich anhört verwendest du das Falsche Andorra "AdVCLWindow".
Wie gesagt, ich kompiliere eines der Demo Projekte, nämlich das NonVCL ;)

mimi 19. Dez 2009 19:07

Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
 
Zitat:

lclinft
Vielleicht habe ich mich auch verschrieben, gebe mal lcl und Drücke dann STRG+LEERTASTE.

Zitat:

nämlich das NonVCL
Du meinst ein NonLCL Projekt. Ob das geht mit Lazarus und Andorra weiß ich nicht. Da solltest du mal im LazarusForum fragen oder hier in der Lazarus-Sparte. Aber vielleicht kann Igel dazu noch mehr sagen.

Romi 19. Dez 2009 19:19

Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
 
Zitat:

Zitat von mimi
lclinft
Vielleicht habe ich mich auch verschrieben, gebe mal lcl und Drücke dann STRG+LEERTASTE.

Ja, scheinbar Case-Sensitiv.

Zitat:

nämlich das NonVCL
Du meinst ein NonLCL Projekt.
Nein, ich meine das NonVCL-Projekt, weil es so heißt ;)
Das ich hier ohne LCL kompiliere ist zwar richtig, aber ich kompiliere ja auch ohne VCL. Kommt also aufs selbe raus ;)

Zitat:

Zitat von mimi
Ob das geht mit Lazarus und Andorra weiß ich nicht. Da solltest du mal im LazarusForum fragen oder hier in der Lazarus-Sparte. Aber vielleicht kann Igel dazu noch mehr sagen.

Im Linux-Tutorial vom Andorra-Projekt wird diese Beispiel genutzt - es ist also auf jeden Fall mit Lazarus kompatibel.

Folgende Fehlermeldung offenbart sich jetzt:
Zitat:

/Users/roman/Documents/Projekte/ad2d_451/src/AdVCLWindow.pas(110,26) Error: Identifier not found "TDeviceMode"

Stoney 19. Dez 2009 20:02

Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
 
Andorra2D ist nur sehr sehr stark eingeschränkt mit Mac OS X kompatibel (praktisch: Window/Input/Event-Support ist drin, beim Laden von Bildern wird es allerdings schon happig) aus dem Grund dass die verwendeten Bibliotheken nicht auf Mac OS X zugeschnitten sind, z.B.:
- DevIL: Der offizielle Mac OS X Support für DevIL kam erst mit Version 1.7.1 (Release: 26.8.08), gelegentlich lese ich aber noch von Problemen unter Mac OS X mit DevIL, hier müssten auf jeden Fall die Pascal-Bindings angepasst werden
- FreeImage: Eigentlich schon plattformunabhängig auch für Mac OS X, aber die Pascal Bindings wurden noch nicht aktualisiert und laufen nur unter Windows
- GLFW: Da habe ich mich vor einem halben Jahr dran gesessen und das Binding aktualisiert, damit auch die Version 2.6 mit FreePascal unter Mac OS X nutzbar ist. Im GLFW-SVN habe ich auch eine Version für die in der momentan in Entwicklung befindende Version 2.7 hochgeladen, mit der es auch möglich ist, GLFW statisch in die Anwendung reinzukompilieren (nur mit FreePascal)
- dglOpenGL: Da habe ich mal im DelphiGL-Forum einen Post erstellt, wie man dglOpenGL auch unter Mac OS X benutzen kann und auf meiner Homepage gibt es auch einen Mac OS X - kompatiblen dglOpenGL-Header zum Herunterladen (allerdings noch nicht die aktuelle Headerversion 3.2.2, da bin ich noch nicht dazu gekommen, die anzupassen)

Generell sollte es schon gelingen, ein leeres Fenster mit Andorra2D unter Mac OS X erstellen zu können.

Du musst allerdings noch die AdStdWindow.pas anpassen. Ändere in der Zeile 27 das AdVCLWindow in AdSDLWindow. Lösche dann in der Main.pas die Referenz zu AdFreeImage aus der uses-Liste.

Natürlich musst du noch gegen das SDL-Framework linken, sonst bekommst du Fehler beim Erstellen der Anwendung. Lade dir erstmal das Framework von http://www.libsdl.org herunter und platziere SDL.Framework in /Library/Frameworks (oder in ~/Library/Frameworks). Dann öffne Projekt->Compilereinstellungen, gehe dort in der Reiter "Linken", setze dort den Haken bei "Einstellungen (-k)" und trage dort ganz unten in das Feld ein: "-framework SDL -framework OpenGL" (ohne die Anführungszeichen)


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:18 Uhr.
Seite 25 von 26   « Erste     15232425 26      

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