![]() |
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 ! |
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. |
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:
Das der Code nicht läuft es mir klar.
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; Muss ich jetzt einfach nur noch eine entsprechende DLL(unter linux so) erzeugen damit es läuft ? |
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 ? |
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: |
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*
|
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! |
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:
Sollte so funktionieren.
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; 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. |
Re: Andorra 2D - The Next Generation 2D Engine [Ver. 0.20 AL
Ok, thx. ;)
|
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:
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.
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; Edit: Das vertauschen bringt auch nichts. :( MfG freak |
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... |
Re: Andorra 2D - The Next Generation 2D Engine [Ver. 0.20 AL
Du musst die Unit AdPNG noch einbinden
|
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; |
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:
tun. Oder was willst du mit GUI.Draw bezwecken... :gruebel: ? Kann mir da nix anderes vorstellen als das.
GUI.Update(PerfCounter.TimeGap/1000)
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. |
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... |
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 ![]() Zitat:
|
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 |
Re: Andorra 2D - The Next Generation 2D Engine [Ver. 0.20 AL
Zitat:
Edit: Oha, kein TPictureCollection mehr und nur noch BlackScreen ... naja jetzt gehts erstmal ins Bett. MfG freak |
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 |
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... |
Re: Andorra 2D - The Next Generation 2D Engine [Ver. 0.20 AL
Ich habe mal eine Sammlung von FAQ zusammengestellt:
![]() 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. |
Re: Andorra 2D - The Next Generation 2D Engine [Ver. 0.20 AL
Danke, werd ich mir merken. ;)
|
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? |
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?
|
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. |
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. |
Re: Andorra 2D - The Next Generation 2D Engine [Ver. 0.20 AL
Ich meinte damit nur, dass es natürlich schneller ist
Delphi-Quellcode:
zu schreiben, anstatt die SpriteEngine für die selbe Aufgabe zu verwenden.
AdDraw.BeginScene;
ImageList.Images[0].Draw(AdDraw,0,0); AdDraw.EndScene; |
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.
|
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:
|
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); |
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:
Und dann muss man nur noch in der Zeichenroutine den Cursor zeichnen (ich konnte das bisher noch nicht auslagern):
AdCursor := TAdSpriteCursor.Create(AdSpriteEngine);
AdCursor.Image := AdImageList.Find('cursor');
Delphi-Quellcode:
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.
if AdDraw.CanDraw then
begin // ... vorbereiten AdCursor.Draw; // Sonsnst noch irgendwas zeichnen // und alles abschließen end;
Delphi-Quellcode:
Normalerweise ist er oben links. Aber bei einen Fadenkreuz sollte man den Mittelpunkt nehmen.
AdCursor.ActionPoint := AdRelativePoint(0,0);
AdCursor.Visible := true; Die Funktion
Delphi-Quellcode:
erwartet dafür eine relative Zahl (am besten zwischen 0 und 1) für den X und Y Versatz.
AdRelativePoint
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 :) |
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: ![]() Da sind besonders Zeile 311 bis 383 das Wichtige diesbezüglich. |
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 |
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. ![]() |
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 |
Re: Andorra 2D - The Next Generation 2D Engine [Ver. 0.20 AL
Bei mir kommt da:
Zitat:
|
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. |
Re: Andorra 2D - The Next Generation 2D Engine [Ver. 0.20 AL
Zitat:
Bin ja schon gespannt :) |
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 ;) |
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
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:35 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