Delphi-PRAXiS
Seite 7 von 26   « Erste     567 8917     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)

mimi 2. Jul 2007 11:46

Re: Andorra 2D - The Next Generation 2D Engine [Ver. 0.20 AL
 
als ich src zum Pfad hinzugefügt habe, musste ich das ständig tuen.
Also bei jedem Projekt was ich anfangen würde.
Also habe ich ein Package erstellt.

Gut dann nehme ich das mit PNG rauß.
Ich würde warscheinlich sowieso OpBitmap nehmen. das unterstützt sehr viele Grafik Formate auch PNG !

mimi 2. Jul 2007 12:15

Re: Andorra 2D - The Next Generation 2D Engine [Ver. 0.20 AL
 
Ich habe jetzt die adPng aus dem Package rauß genommen, leider verwendest du sie aber sehr vielseitig im Projekt z.b. in adPngExtra.

Ich habe alles was mit adPng anfängt einfach aus dem Package gelöscht.
Kompilieren kann ich es jetzt. So wie es aussieht.

So jetzt kommt der Loder dran.

mimi 2. Jul 2007 12:21

Re: Andorra 2D - The Next Generation 2D Engine [Ver. 0.20 AL
 
so nun habe ich mich an dein erstes Tutorial gehalten und bin jetzt soweit:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  AdDraw1 := TAdDraw.Create(self);
  AdDraw1.DllName := 'AndorraDX93D.dll';
  if AdDraw1.Initialize then begin
  // Hier gehts 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;
Das der Code nicht läuft es mir klar.
Muss ich jetzt einfach nur noch eine entsprechende DLL(unter linux so) erzeugen damit es läuft ?

mimi 2. Jul 2007 12:30

Re: Andorra 2D - The Next Generation 2D Engine [Ver. 0.20 AL
 
Ich habe ein Beispiel Projekt von Lazarus Kompliert. Das läuft Ziemlich langsam !
und ruckelt. Das liegt vermutlich daran das ich in meinem Latop so eine Blöde Grafik Karte drin habe, die von Linux derzeit nicht unterstütz wird: eine UniChrome S3 oder so ähnlich.

Ich werde mal unter google nochmal suchen. Evlt. gibt es ja jetzt updatest.

Ansonsten könnte ich OpenGl bei meinem Bruder probieren, der hat sich ein neuen Recher gekauft.
Mal sehen. Aber ich glaube ich weiß jetzt wie du es dir vorgestellt hast.
Ich habe unter Lib in deinem Verzeichnis gesehen das es eine i83-Linux gibt.

Können die schön genutzt werden ?
hast du schon das beispiel:
openglcontrol von Lazarus dir angesehen ?

wicht 11. Jul 2007 13:54

Re: Andorra 2D - The Next Generation 2D Engine [Ver. 0.20 AL
 
Ich bins mal wieder.. :)

Noch eine Frage an den genialen Igel: Wie bekomme ich es hin, dass TAdParticleSystem über anderen Sprites zeichnet? Habe jeden Tag nur 3 Stunden Zeit um an meinem Spiel zu bauen und nur ein wenig geschaut aber nichts gefunden.. Darum versuche ich es mal hier. Tut mir leid, wenn die Frage blöd ist, weil ich etwas übersehen habe :-D .. Würde mich heute Abend wenn ich nach hause komme jedenfalls freuen, wenn ich wüsste, wie das geht... :?

Danke für eventuelle Antworten :stupid:

wicht 11. Jul 2007 20:12

Re: Andorra 2D - The Next Generation 2D Engine [Ver. 0.20 AL
 
Wie dumm von mir. Ganz einfach: TAdParticleSystem erst nach TAdSpriteEngine zeichnen im Application.OnIdle :-D ....... *schäm*

freak4fun 30. Jul 2007 09:53

Re: Andorra 2D - The Next Generation 2D Engine [Ver. 0.20 AL
 
Hi,
ich hab ein Bitmap mit einer nicht clFarbe. Wie kann ich nach dem laden des Bildes die Transparente Farbe einstellen? Die Farbe die eingestellt werden soll ist der Pixel oben links im Bild. Danke!

igel457 30. Jul 2007 19:38

Re: Andorra 2D - The Next Generation 2D Engine [Ver. 0.20 AL
 
Hallo,

du musst nicht (wie vermutet) auf die Pixel zugreifen, was auch wirklich ein wenig "kompliziert" wäre. Es gibt mehrere Wege:

Weg 1:
Du machst das wie in den Tutorials, direkt beim Laden des Bitmaps (wobei du dann vorher die Farbe wissen solltest (also nicht das was du möchtest)

Weg 2:
Delphi-Quellcode:
var
  bmp:TBitmap;
begin
  bmp := TBitmap.Create;
  bmp.LoadFromFile('XXX.bmp');
  bmp.TransparentMode := tmAuto; //Die Transparenzfarbe wird auf den ersten Pixel gesetzt.
  bmp.Transparent := true;

  with AdImageList.Add('XXX') do
  begin
    Texture.LoadFromGraphic(bmp); //Die Transparenzeinstellungen werden direkt übernommen!
  end;

  bmp.Free;
end;
Sollte so funktionieren.

Ich hoffe das das deine Frage löst. Mach in Zukunft aber bitte einen eigenen Thread für solche Fragen auf (wie hier im ersten Post geschreiben) - sonst wird es hier so unübersichtlich.

freak4fun 30. Jul 2007 21:37

Re: Andorra 2D - The Next Generation 2D Engine [Ver. 0.20 AL
 
Ok, thx. ;)

freak4fun 1. Aug 2007 12:13

Re: Andorra 2D - The Next Generation 2D Engine [Ver. 0.20 AL
 
Hallo,
bei Teil 3 im Tutorial dürfte es Probleme geben.
Delphi-Quellcode:
procedure TFigur.SetLine;
begin
  //Bewegt die Figur in eine neue Ebene
  XSpeed := -XSpeed;
  if XSpeed > 0 then
  begin
    AnimStart := 0;
    AnimStop := 7;
    X := -96;
  end
  else
  begin
    AnimStart := 8;
    AnimStop := 15;
    X := Engine.SurfaceRect.Right+96;
  end;
  Y := Random(Engine.SurfaceRect.Right-96);
end;
Wenn AnimStart bei Speed < 0 gesetzt wird, wird geprüft, wie groß AnimStop ist. Da AnimStop 7 ist und somit kleiner als AnimStop (8) zu dem Zeitpunkt, wird AnimStart auf 7 gesetzt. Dadurch habe ich einen Grafikfehler in einer Animation.

Edit: Das vertauschen bringt auch nichts. :(

MfG
freak

Joe_the_Junkie 1. Aug 2007 17:33

Re: Andorra 2D - The Next Generation 2D Engine [Ver. 0.20 AL
 
Moin Moin,

Ich wollte heute mal einen kleinen Test starten, aber wenn ich versuche die GUI zu laden, dann kommt immer der Fehler "ENoCompressor" PNG-Kompressor not Found oder irgendwie sowas.

Woran kann das liegen. Die PNG-Kompo hab ich installiert...

Die Muhkuh 1. Aug 2007 17:34

Re: Andorra 2D - The Next Generation 2D Engine [Ver. 0.20 AL
 
Du musst die Unit AdPNG noch einbinden

Joe_the_Junkie 1. Aug 2007 18:24

Re: Andorra 2D - The Next Generation 2D Engine [Ver. 0.20 AL
 
Jo danke, jetzt hab ich aber ein neues Problem.

Wenn ich eingebe

GUI.Draw;

Dann gibt der einen fetten Fehler aus und bricht ab.

Der Fehler liegt dann in der ADDraws und wzar in der Zeile 2824

Delphi-Quellcode:
function TAdFont.GetLoaded: boolean;
begin
  result := FTexture.Texture.Loaded and (FMeshList.Count > 0) and (FLetterCount > 0);
end;

g0rmed 1. Aug 2007 18:43

Re: Andorra 2D - The Next Generation 2D Engine [Ver. 0.20 AL
 
Wenn du die GUI zeichnen willst dann solltest du das mit
Delphi-Quellcode:
GUI.Update(PerfCounter.TimeGap/1000)
tun. Oder was willst du mit GUI.Draw bezwecken... :gruebel: ? Kann mir da nix anderes vorstellen als das.
Und bitte solche Fragen in den Multimedia-Bereich ;) sonst siehst hier bald aus wie Kraut und Rüben :P und der arme igel weiß gar net mehr wo er anfangen soll.

Joe_the_Junkie 1. Aug 2007 19:05

Re: Andorra 2D - The Next Generation 2D Engine [Ver. 0.20 AL
 
Ja das hab ich jetzt auch benutzt.

Aber jetzt macht der schon wieder nen ganz anderen Fehler in der AdDraws.

In Zeile 2969 bei "FMeshlist.Count" angeblich hat FMeshlist.Count keinen Wert und dan stürtzt das Programm ab...

igel457 2. Aug 2007 21:46

Re: Andorra 2D - The Next Generation 2D Engine [Ver. 0.20 AL
 
@freak4fun
Den Fehler habe ich beim Entwickeln der Demo auch gefunden und wurde (theoretisch) in 0.2 ALPHA von mir gefixt. Es sollte also kein Problem mehr geben...

@Joe_the_Junkie
Ohne mehr Code kann ich dir leider nicht helfen - du musst mir schon den gesammten Ausschnit schicken. ;-). Hast du auch daran gedacht, die unit "AdComponents" einzubinden? Hast du sonst alles so gemacht wie hier?
Zitat:

Zitat von g0rmed
Und bitte solche Fragen in den Multimedia-Bereich Wink sonst siehst hier bald aus wie Kraut und Rüben Razz und der arme igel weiß gar net mehr wo er anfangen soll.

dito

Joe_the_Junkie 2. Aug 2007 23:14

Re: Andorra 2D - The Next Generation 2D Engine [Ver. 0.20 AL
 
Ja, das Thema hat sich schon erledigt...

Hab den Fehler gefunden. Vielen Dank

freak4fun 3. Aug 2007 00:47

Re: Andorra 2D - The Next Generation 2D Engine [Ver. 0.20 AL
 
Zitat:

Zitat von igel457
@freak4fun
Den Fehler habe ich beim Entwickeln der Demo auch gefunden und wurde (theoretisch) in 0.2 ALPHA von mir gefixt. Es sollte also kein Problem mehr geben...

Danke, werde ich mal ausprobieren. Ich arbeite zur Zeit noch mit der 0.15 glaube ich.

Edit: Oha, kein TPictureCollection mehr und nur noch BlackScreen ... naja jetzt gehts erstmal ins Bett.

MfG
freak

freak4fun 4. Aug 2007 21:20

Re: Andorra 2D - The Next Generation 2D Engine [Ver. 0.20 AL
 
Ich hab jetzt von der 15 auf die 2 alpha umgestellt und bekomme nur noch schwarzen bildschirm. Steht irgendwo was sich geändert hat? Hab nur das TPictureCollection in AdImages umgenannt und compeliert, aber dann bekomme ich nur schwarzen Bildschirm. :( Ich weiß net weiter.

MfG
freak

igel457 6. Aug 2007 02:32

Re: Andorra 2D - The Next Generation 2D Engine [Ver. 0.20 AL
 
Der Fehler tritt oftmals dann auf, wenn man vergisst die DLL auszutauschen ;-)
Das Vergesse ich aber auch teilweise, also nicht so schlimm...

igel457 6. Aug 2007 03:41

Re: Andorra 2D - The Next Generation 2D Engine [Ver. 0.20 AL
 
Ich habe mal eine Sammlung von FAQ zusammengestellt:
http://andorra.sourceforge.net/index.php?section=FAQ
Bitte ersteinmal dort nachlesen, ob das Problem schon vorher gelöst wurde, bevor ihr eine neue Frage stellt. Ich werde das auch noch über das Menü verlinken, doch Momentan ist mir das nicht möglich.

freak4fun 6. Aug 2007 11:31

Re: Andorra 2D - The Next Generation 2D Engine [Ver. 0.20 AL
 
Danke, werd ich mir merken. ;)

xZise 11. Aug 2007 17:56

Re: Andorra 2D - The Next Generation 2D Engine [Ver. 0.20 AL
 
Hi Andreas,
ich wollte Freggels II programmieren, und da trifft es sich, dass es A2D gibt :)
Aber ich habe ein Problem mit den Grafiken:
Und zwar kennt TD-E kein "TPictureCollection". Stattdessen nehme ich "TAdImageList". Ist das der Nachfolger? Oder habe ich da einen rießen Fehler gemacht?

MfG
xZise

PS: Gibts eine möglichkeit einfach ein Cursor zu simulieren?

Florian H 12. Aug 2007 12:10

Re: Andorra 2D - The Next Generation 2D Engine [Ver. 0.20 AL
 
Gibt es eigentlich einen signifikanten Performanceunterschied, wenn ich statt mit Hilfe der Sprites-Klasse meine Objekte zu zeichnen ich diese einfach "von Hand" über die draw-Funktion einer ImageList o.ä. direkt auf adDraw-Surface zeichne und wenn ja, wo und in welchem Rahmen liegt dieser?

igel457 12. Aug 2007 14:40

Re: Andorra 2D - The Next Generation 2D Engine [Ver. 0.20 AL
 
Hallo Florian,

es ist natürlich viel schneller die Bilder direkt über die ImageList zu zeichnen - schließlich macht die SpriteEngine auch nichts anderes, verwaltet aber gleichzeitig noch eine ganze Menge anderen Kram (Kollisionen, Z-Sortierung, den Zeichenbereich etc.) und den macht sie recht schnell. Also wenn du das Rad nicht neu erfinden willst, ist die SpriteEngine genau das richtige.

Florian H 12. Aug 2007 16:34

Re: Andorra 2D - The Next Generation 2D Engine [Ver. 0.20 AL
 
Die Spriteenging ist genau das Richtige, wenn ich das Rad nicht neu erfinden will - sie ist aber 'natürlich viel' langsamer?
Okay, dann erfinde ich wohl trotzdem lieber das Rad neu resp. ich hab es ja schon erfunden und werds auch beibehalten ^^
Danke.

igel457 12. Aug 2007 16:47

Re: Andorra 2D - The Next Generation 2D Engine [Ver. 0.20 AL
 
Ich meinte damit nur, dass es natürlich schneller ist
Delphi-Quellcode:
AdDraw.BeginScene;
ImageList.Images[0].Draw(AdDraw,0,0);
AdDraw.EndScene;
zu schreiben, anstatt die SpriteEngine für die selbe Aufgabe zu verwenden.

Priest 17. Aug 2007 10:50

Re: Andorra 2D - The Next Generation 2D Engine [Ver. 0.20 AL
 
Wollte mal fragen ob es ne Proberty gibt womit man eine Sprite Horizontal/Vertikal Spiegeln kann. Habe mir die Documentation von Sprite angeschaut kann aber nichts finden :( könnte ja sein das bei Ver 20 Aplha so etwas gibt.

xZise 17. Aug 2007 12:48

Re: Andorra 2D - The Next Generation 2D Engine [Ver. 0.20 AL
 
Ich will ja nicht nerven :cyclops: aber das interessiert mich schon:
Zitat:

Zitat von xZise
Und zwar kennt TD-E kein "TPictureCollection". Stattdessen nehme ich "TAdImageList". Ist das der Nachfolger? Oder habe ich da einen rießen Fehler gemacht?

Zitat:

Zitat von xZise
PS: Gibts eine möglichkeit einfach ein Cursor zu simulieren?

==> Hat sich "erledigt"... Habe eine (noch) nicht animierte Cursor Sprite Klasse gemacht

igel457 17. Aug 2007 18:49

Re: Andorra 2D - The Next Generation 2D Engine [Ver. 0.20 AL
 
Hallo,

Entschuldigung xZise, ich hatte dich schlichtweg übersehen ;-). Das ist schon richtig was du gemacht hast - TAdImageList/TAdImage sind die korrekten klassen.

@Priest,
leider noch nicht, kommt aber in meine ToDo Liste...

Andreas

EDIT: Da fällt mir ein: Das mit dem Spiegeln geht schon - du musst das Bild einfach "Falsch Herum" zeichnen, also Image.StretchDraw(AdDraw,Rect(100,100,0,0),0);

xZise 20. Aug 2007 11:12

Re: Andorra 2D - The Next Generation 2D Engine [Ver. 0.20 AL
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich weiß nicht ob das hier so richtig ist, aber ich habe "versucht" ein SpriteCursor zu erstellen.

Es verhält sich wie ein normaler/s ( :oops: ) Sprite:
Also man muss es erstellen und ein Bild zuweisen:
Delphi-Quellcode:
AdCursor := TAdSpriteCursor.Create(AdSpriteEngine);
AdCursor.Image := AdImageList.Find('cursor');
Und dann muss man nur noch in der Zeichenroutine den Cursor zeichnen (ich konnte das bisher noch nicht auslagern):
Delphi-Quellcode:
if AdDraw.CanDraw then
begin
  // ... vorbereiten
  AdCursor.Draw;
  // Sonsnst noch irgendwas zeichnen
  // und alles abschließen
end;
Um den Cursor nun bewegen zu lassen muss man ".Visible" auf "true" setzen. Zusätzlich kann man auch noch ein "ActionPoint" setzen. Der gibt an, wo "geklickt" werden soll.
Delphi-Quellcode:
AdCursor.ActionPoint := AdRelativePoint(0,0);
AdCursor.Visible := true;
Normalerweise ist er oben links. Aber bei einen Fadenkreuz sollte man den Mittelpunkt nehmen.

Die Funktion
Delphi-Quellcode:
AdRelativePoint
erwartet dafür eine relative Zahl (am besten zwischen 0 und 1) für den X und Y Versatz.

Ein Sache zu "Visible":
Wenn man den Cursor anzeigen lässt, dann stellt er alle Controls, welche sich auf den gleichen Control von dem AdDraw (dessen Engine der Curosr gehört) befinden, und deren Untercontrols so ein, dass dort kein Cursor erscheint. Schaltet man es wieder aus, wird der "crDefault" Cursor verwendet.
Leider wird der Spritecursor hinter den Controls angezeigt oder das AdDraw wird vor den Controls gesetzt...

PS: Eine statische Möglichkeit gibt es noch nicht.

PPS: Igel, wenn du möchtest, kannst du ihn standardmäßig einbauen.

PPPS: Ja ich weiß, dass Cursor eigentlich den Curet beschreibt, aber wir belassen es mal dabei :)

g0rmed 20. Aug 2007 15:40

Re: Andorra 2D - The Next Generation 2D Engine [Ver. 0.20 AL
 
Also was du gemacht hast ist sehr nützlich, aber es gibt mithilfe der GUI auch schon einen Cursor. Das einzige was daran vieleicht nachteilig ist, ist, dass man die ganzen GUI-Units einbinden muss, das muss man mit deiner Sprite-Klasse nicht.
Vieleicht probiere ich deinen Cursor mal aus, dann wird sich ja zeigen welcher nützlicher ist. :wink:
Nochmal zum schnellen nachgucken :arrow: GUI-Unit
Da sind besonders Zeile 311 bis 383 das Wichtige diesbezüglich.

xZise 21. Aug 2007 19:56

Re: Andorra 2D - The Next Generation 2D Engine [Ver. 0.20 AL
 
Schade...
Eine Frage hätte ich: Wie kann ich ein Bild "skalierend" speichern?
Also, wenn ich ein 64x64 Bild habe, aber das aus unerklärlischen Gründen :D nur 32x32 groß sein soll? Wie kann ich dass dann in TAdImage speichern?

MfG
xZise

Progman 1. Sep 2007 11:47

Re: Andorra 2D - The Next Generation 2D Engine [Ver. 0.20 AL
 
Hi, ich möcht erstmal den Igel zu der genialen Engine gratulieren!
Ich habe früher schon mit DelphiX gearbeitet und hab jetzt mit der Andorra-Engine in paar stunden ne kleine Demo zusammengebastelt, die erahnen lässt, was mit ihr alles möglich ist.
Demo-Programm

igel457 1. Sep 2007 13:08

Re: Andorra 2D - The Next Generation 2D Engine [Ver. 0.20 AL
 
Hallo Progman,

dein Spiel ist wirklich recht nett. Als Verbesserungsvorschlag würde ich dir empfehlen PNGs zu verwenden, denn darin kann ein Alphachannel gespeichert werden, was den noch etwas unschönen schwarzen Rand um die Objekte entfernt und Explosionen entsprechend aufwertet.

Die neue Version meiner Engine wird es voraussichtlich Ende des Monats geben, ich bin gerade nämlich noch mit etwas anderem Beschäftigt.

Andreas

jfheins 1. Sep 2007 20:07

Re: Andorra 2D - The Next Generation 2D Engine [Ver. 0.20 AL
 
Bei mir kommt da:
Zitat:

---------------------------
Shooter2007.exe - Komponente nicht gefunden
---------------------------
Die Anwendung konnte nicht gestartet werden, weil d3dx9_31.dll nicht gefunden wurde. Neuinstallation der Anwendung könnte das Problem beheben.
---------------------------
OK
---------------------------
Und ja, ich hab DirectX 9.0c installiert, und kann auch andere 3d Spiele spielen .. :gruebel:

Progman 1. Sep 2007 21:26

Re: Andorra 2D - The Next Generation 2D Engine [Ver. 0.20 AL
 
oh sorry, hatte glatt vergessen, die DLL mit eizuzippen.
Ist jetzt aber mit drin. Also nochmal holen und dann müsste es gehen.
Denn das ist keine Windows-DLL.

Florian H 12. Sep 2007 11:19

Re: Andorra 2D - The Next Generation 2D Engine [Ver. 0.20 AL
 
Zitat:

Zitat von igel457
Die neue Version meiner Engine wird es voraussichtlich Ende des Monats geben, ich bin gerade nämlich noch mit etwas anderem Beschäftigt.

Was wirds denn so neues geben?
Bin ja schon gespannt :)

Progman 12. Sep 2007 11:42

Re: Andorra 2D - The Next Generation 2D Engine [Ver. 0.20 AL
 
Ich auch ;)
Und übrigens: Hab gestern mal ein Demo-Programm unter Vista getestet. Lief genau so sauber wie unter XP!
Also kann man sagen, dass die Andorra-Engine auch Vista-tauglich ist ;)

igel457 12. Sep 2007 15:43

Re: Andorra 2D - The Next Generation 2D Engine [Ver. 0.20 AL
 
Hallo - ich werde mich morgen wieder um meine Engine kümmern. Ich habe die ganze Zeit an diesem Projekt gearbeitet (welches übrigens auch Andorra 2D verwendet). Dann gibt es auch bald die neue Version - praktisch ist die ja schon fertig, ich muss sie halt nur noch zippen und dokumentieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:35 Uhr.
Seite 7 von 26   « Erste     567 8917     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