![]() |
Re: Andorra 2D [Ver. 0.40, 01.07.08]
Zitat:
|
Re: Andorra 2D [Ver. 0.40, 01.07.08]
Hallo,
ist es möglich, wenn an einer Stelle X; Y mehrere Sprites sind, auch eine Liste von Sprites zurückzubekommen? MfG xZise |
Re: Andorra 2D [Ver. 0.45, 24.12.08]
Hallo,
Zitat:
Zitat:
Zitat:
|
Re: Andorra 2D [Ver. 0.45, 24.12.08]
Version 0.4.5 erschienen
Pünktlich zu Weihnachten habe ich ein kleines "Geschenk" vorbereitet: Andorra 2D Version 0.4.5. Diese Version ist zum größten Teil eine Bugfix-Version, jedoch ist auch das eine oder andere Feature dazu gekommen. Die wichtigsten Veränderungen im Überblick:
Eine komplette Liste gibt es hier: ![]() Wichtig: Wenn ihr einen AMD-Prozessor besitzt und Probleme mit der Darstellung habt, so versucht bitte in der andorra_conf.inc den "DO_NOT_USE_3DNOW" Schalter zu aktivieren (die Applikation neu erzeugen, SHIFT+STRG+F9) und benachrichtigt mich über das Problem. Wenn ihr einen AMD-Prozessor (mit 3DNow!) habt und alles funktioniert, bitte auch sagen. Download: ![]() Viel Spaß mit der neuen Version und frohe Weihnachten, Andreas |
Re: Andorra 2D [Ver. 0.45, 24.12.08]
Hallo igel,
ich habe mir es erlaubt deinen ImageEditor zu überarbeiten (ein paar Ressourcenschutzblöcke, eine Möglichkeit eine andere ImageList in die aktuelle zu importieren und alle Bilder zu exportieren). Willst du den aktuellen Code haben (ich habe die nicht CVS Version)? Zitat:
Aber eine Frage: Wenn ich das Programm unter Intel kompiliere und dann benutzt es jemand mit einem AMD Prozessor: Läuft es dann immer noch? [edit=0]Ehm igel, ist der Screenshot ![]() ![]() MfG xZise |
Re: Andorra 2D [Ver. 0.45, 24.12.08]
Zitat:
|
Re: Andorra 2D [Ver. 0.45, 24.12.08]
Hallo,
natürlich kannst du mir deinen überarbeiteten Imagelist-Editor geben, das wäre nett. Zu deiner Frage, ob das Programm auch auf einem AMD-Prozessor läuft, wenn es mit einem Intel-Prozessor kompiliert worden ist: Andorra 2D überprüft beim Programmstart welche Befehlssatzerweiterungen vorhanden sind und weist entsprechend die optimierten Funktionen zu. Es ist also egal, mit was für einem Prozessor du das Programm compilierst. Das mit dem Bild ist reiner Zufall - ehrlich. Das ist mir auch aufgefallen, nachdem ich zufälligerweise den Wikipedia-Eintrag über BBB gelesen habe. Zitat:
![]() |
Re: Andorra 2D [Ver. 0.45, 24.12.08]
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Zitat:
Zitat:
Aber eine Frage hätte ich noch: Kann A2D auch OGG-Videos also Theora abspielen? Da habe ich glatt den Sourcecode vergessen. MfG xZise |
Re: Andorra 2D [Ver. 0.45, 24.12.08]
@xZise: Ein überarbeiteter ImageEditor ist natürlich super! :)
Hätte mich die letzten Tage auch fast hingesetzt, weil mir was wichtiges gefehlt hat: Eine "Bild ersetzen"-Funktion. Ich muss nämlich relativ oft Grafiken im Editor durch eine neue Version ersetzen (da überarbeitet o.ä.), und da ist es relativ nervig, erst ein neues Bild zu laden, das an die richtige Position zu schieben (für den korrekten Index), die Einstellungen wieder zu machen (Pattern, Name, ...) und das alte Bild dann zu löschen. Da wäre es super, wenn ich einfach für ein vorhandenes Bild eine neue Grafik laden kann, aber alle Einstellungen etc. bleiben erhalten ... Falls du das nicht brauchst, kann ich das aber auch einbauen, wenn du mit deinen Erweiterungen fertig bist :) Ansonsten danke für das Weihnachtsgeschenk igel, werds morgen auch mal testen (Andorra und AMD-Support). |
Re: Andorra 2D [Ver. 0.45, 24.12.08]
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Und kann es sein, dass mit Delphi 2009 der ImageEditor nicht so gut funktioniert? Also der Fehler könnte an der PngImage-Datei liegen, aber es ich nun mal so dass die einzelnen Einträge Probleme mit Transparenten Bildern hat. Ich habe mal ein Beispiel angehangen. MfG xZise |
Re: Andorra 2D [Ver. 0.45, 24.12.08]
Ich habe mal ein kleines Script gebastelt: Ab sofort gibts
![]() |
Re: Andorra 2D [Ver. 0.45, 24.12.08]
Hi,
Hab gerade ein kleines Problem.... Hab ein mini-Andorra Programm geschrieben. Also nur um was zu testen. Bei mir gehts wunderbar... Aber bei anderen gehts nicht. Da schlägt AdDraw.Initialize; fehl. Allerdings auch nicht immer... Code sieht so aus:
Delphi-Quellcode:
Jemand ne Ahnung was das sein soll? Hab die aktuellste Version von Andorra.
AdDraw := TAdDraw.Create(Panel1);
AdDraw.DllName := 'AndorraDX93D.dll'; if not AdDraw.Initialize then ShowMessage('Hat nicht geklappt'); |
Re: Andorra 2D [Ver. 0.45, 24.12.08]
Naja, klingt ja so, als ob die AndorraDX93D.dll oder die d3dx9_31.dll nicht mitgeliefert wurde? :gruebel:
|
Re: Andorra 2D [Ver. 0.45, 24.12.08]
Wollte ich eigentlich hinschreiben: Habe alle DLLs mitgeliefert.. die von DX9 und die AndorraDX dll.
|
Re: Andorra 2D [Ver. 0.45, 24.12.08]
Das Problem hatte ich auch einmal (also an einem anderen Pc als an meinem).
Nachdem ich dann aber die aktuelle DirectX Version mit allen Updates (gibts ![]() Was aber ärgerlich ist: Das Update ist so um die 85 MB groß. MFG Benjamin |
Re: Andorra 2D [Ver. 0.45, 24.12.08]
Eigentlich darf die benötigte d3d9_33.dll nicht mitgeliefert werden - das steht wohl so in der Microsoft Eula. Stattdessen müssen Anwendungen den DirectX-Endbenutzer-Installer mitliefern. Es gibt auch einen DirectX Webinstaller, der lädt die noch nicht vorhandenen DirectX-Versionen aus dem Web herunter.
Außerdem ist diese DLL auf den meisten Systemen sowieso schon installiert. Und mal ehrlich - jeder Entwickler sollte in der Lage sein, das SDK herunter zu laden. Ich möchte eben nur nicht gegen die Microsoft-Richtlinen verstoßen. |
Re: Andorra 2D [Ver. 0.45, 24.12.08]
Ich habe gerade mal geschaut, ist das echt normal, dass ich mit DirectX um die 400FPS für eine relativ simple Szene schaffe, mit OpenGL aber nur 60FPS? :shock:
Sobald es komplexer wird (deutlich mehr zu zeichnende Elemente) geht OpenGL leicht nach unten auf ~40FPS, DirextX bricht dann regelrecht ein und kommt nur noch auf ungefähr 60FPS. So krasse Performance-Unterschiede? Ist ja eigentlich schade, weil OpenGL dann für aufwändigere Sachen rausfällt :/ |
Re: Andorra 2D [Ver. 0.45, 24.12.08]
Zitat:
MfG xZise |
Particle System fucked up?
Hi,
Erstmal ein großes Lob für die Engine - es macht wirklich viel Spass damit zu arbeiten. Ich wollte gerade ein paar Partikel in mein Programm einbauen. Das klappte ganz gut, bis ich, wie im Particle-Tutorial beschrieben, im Partikeleditor ein DefaultParticle erstellt und geladen habe: Der Particleeditor hat scheinbar bei jedem öffnenden XML-Befehl den letzten Buchstaben abgehackt (z.B. <particleclas > statt <particleclass >). Naja machts nichts, die habe ich dann angehangen. Dann hat er ohne Fehler die Datei geladen. Aber dann hatte sich nichts verändert. Ich hatte eigentlich ein paar Farben eingestellt und die Bewegung verändert, aber es bringt nichts, die Partikel sind immer noch weiß und bewegen sich wie immer. Folgenden Code benutze ich:
Delphi-Quellcode:
Und zum Emittieren (aus einer Routine einer Spriteklasse):
PartSys := TAdParticleSystem.Create(AdDraw);
PartSys.Texture := AdImageList.Find('particle').Texture; PartSys.DefaultParticle.LoadFromFile('textures\part.axp');
Delphi-Quellcode:
Ich wusste nicht weiter, also dachte ich, ich verändere das DefaultParticle mal manuell, ohne eine Datei zu laden. Aber die Eigenschaft LifeTime gibt es gar nicht :?:
PartSys.Emit(3, round(self.X), round(self.Y));
Vielleicht kann mir ja jemand weiterhelfen. Ich benutzte Andorra2D Version 4.5. Danke schonmal, Roman |
Re: Andorra 2D [Ver. 0.45, 24.12.08]
Also ich hatte Anfangs auch Probleme damit, hab das aber dann so gelößt:
Zuerst mal die Klasse:
Delphi-Quellcode:
Das Laden:
TPartSys = class(TAdParticleSystem)
private FEmissionTime: Double; FGap: Double; FX: Double; FY: Double; procedure SetEmissionTime(const Value: Double); procedure SetGap(const Value: Double); procedure SetX(const Value: Double); procedure SetY(const Value: Double); public procedure EmitParticles; property Gap: Double read FGap write SetGap; property EmissionTime: Double read FEmissionTime write SetEmissionTime; //= Lifetime property X: Double read FX write SetX; property Y: Double read FY write SetY; end;
Delphi-Quellcode:
Damit das mit der LifeTime auch geht (gibts nämlich nicht), hab ich das so gemacht (ist aus dem Editor rauskopiert :stupid: ):
PartSys := TPartSys.Create(AdDraw);
with PartSys do begin Texture := ImageList.Find('particle_target').Texture; LoadFromFile(MyPath+'target.axp'); end;
Delphi-Quellcode:
Du musst nur in der Idle-Prozedur "PartSys.EmitParticles" aufrufen, und es müsste gehen.
procedure TPartSys.EmitParticles;
Gap := Gap + CPUCounter.TimeGap; //CPUCounter: TAdPerformanceCounter if Gap > EmissionTime then begin Emit(Round(Gap / EmissionTime), Round(X), Round(Y)); Gap := Gap - EmissionTime * Round(Gap / EmissionTime); end; Draw(AdDraw, 0, 0); end; MFG Benjamin |
Re: Andorra 2D [Ver. 0.45, 24.12.08]
Was mir auch aufgefallen ist (ich aber bisher vergessen habe, zu melden): Wenn man im Editor als Lifetime einen Komma-Wert angibt (z.B. für eine halbe Sek.), dann kann diese Datei nicht mehr geladen werden, da eine ungültige Zahl in die XML-Datei geschrieben wird.. soweit ich mich entsinne, hatte sie zu viele Nachkommastellen (0,5000000000000) oder das "."/","-Problem.
|
Re: Andorra 2D [Ver. 0.45, 24.12.08]
Zitat:
Delphi-Quellcode:
Dann sollte es gehen.
//AdSimpleXML.pas
function WriteStringToStream(Stream: TStream; const Buf: String; BufSize: Integer): Integer; var i: integer; b: Byte; begin result := 0; for i := 1 to BufSize do //Diese Zeile umändern begin b := Ord(Buf[i]); Stream.Write(b, 1); end; end; Zitat:
|
Re: Andorra 2D [Ver. 0.45, 24.12.08]
Zitat:
Zitat:
|
Re: Andorra 2D [Ver. 0.45, 24.12.08]
Zitat:
Auf Vista wurde das gesammte Treiber und Grafik Modell geändert... da wird die dx9 Runtime nicht wirklich rein passen... Vieleicht liegts ja daran, dass du mal aus Jux die Dll's in dein System kopiert hast... Entfern besser den ganzen alten Kram von deinem System... gehört da nicht hin *g* |
Re: Andorra 2D [Ver. 0.45, 24.12.08]
WObei ich unter Windows Vista Home Premium x64 auch jetzt auf einmal Probleme mit Drawball habe (wobei ich da nix geändert habe):
Zitat:
Ich probiere es mal mit nochmal Downloaden. MfG xZise |
Re: Andorra 2D [Ver. 0.45, 24.12.08]
Zitat:
Ist aber, wie der Text vermuten lässt, die Meldung bei für
Delphi-Quellcode:
...
if not AdDraw.Initialize then //...
@igel: Zu meinem Post oben bezüglich der Performance mit OpenGL: Ist das also normal, openGL ist wirklich so langsam? Ist also kein Bug oder ne alte Version bei mir? |
Re: Andorra 2D [Ver. 0.45, 24.12.08]
Zitat:
![]() Unter Vista soll sich angeblich nur im Vollbildmodus ein hardwarebeschleunigtes openGL nutzen lassen (da der die gesamte Windows-Oberfläche mit DirectX gezeichnet wird). MfG, Bug |
Re: Andorra 2D [Ver. 0.45, 24.12.08]
hallo zusammen,
ich hab stundenlang bei meinem programm daran rumgegrübelt, warum einige rechtecke nicht in der bewünschten brush.color gezeichnet wurden. jetzt bin ich darauf gekommen, das es daran lag, dass ich dei beiden x-werte in falscher reihefolge übergeben habe. ich hab das ganze dann nochmal in einem kleinen testprogramm überprüft, indem ich mir jeweils eins der vier (identischen?)quadraten habe zeichnen lassen.
Delphi-Quellcode:
die ersten beiden quadrate werden nicht in der gewünschten brush.color gezeichnet, die letzen beiden sehr wohl.
addraw.canvas.Brush.Color := ad_argb( 255,0,255,255 );
//addraw.Canvas.Rectangle(200,100,100,200); //addraw.Canvas.Rectangle(100,200,200,100); //addraw.Canvas.Rectangle(100,100,200,200); addraw.Canvas.Rectangle(200,200,100,100); jetzt wollte ich mal wissen ob das gewollt oder ein fehler ist? grüße |
Re: Andorra 2D [Ver. 0.45, 24.12.08]
Hallo,
Also DrawBall geht wieder nachdem ich es nochmal gedownloadet habe. Aber ![]() Zitat:
MfG xZise |
Re: Andorra 2D [Ver. 0.45, 24.12.08]
Zitat:
Fehler --------------------------- Andorra Image List Editor --------------------------- No loader found to load the specified file "C:\Dokumente und Einstellungen\Benjamin\Eigene Dateien\Delphi\Andorra 2d\test\testbild.png". --------------------------- OK --------------------------- Und der Opendialog zeigt auch nicht mehr die Bilder in der Vorschau an MFG Benjamin |
Re: Andorra 2D [Ver. 0.45, 24.12.08]
Ich bekomme beim compilieren eines ganz simplen Projekts unter Delphi 2009 jede Menge Warnungen:
Zitat:
|
Re: Andorra 2D [Ver. 0.45, 24.12.08]
Und beim compilieren der Andorra DLL mit Delphi 2009 bekomme ich auch ein paar Warnungen...
Zitat:
|
Re: Andorra 2D [Ver. 0.45, 24.12.08]
Zitat:
|
Re: Andorra 2D [Ver. 0.45, 24.12.08]
Hm, das Beispiel war nicht besonders gut gewählt :stupid: , es geht auch bei BMP und JPG nicht. :wall:
AdPNG ist nicht eingebunden, aber es ist AdDevIL eingebunden. |
Re: Andorra 2D [Ver. 0.45, 24.12.08]
Zitat:
MfG xZise |
Re: Andorra 2D [Ver. 0.45, 24.12.08]
Na ja, auf jeden Fall ist die Frage, ob in den eingebundenen Dateien ein Loader für die zu ladenden Formate definiert wird.
|
Re: Andorra 2D [Ver. 0.45, 24.12.08]
Zitat:
![]() @Leos-Studio Die Warnungen lassen sich bei Delphi 2009 leider nicht vermeiden. An diesen Stellen kann aber eigentlich nichts schief gehen. @bigben37 Wie lädst du die Bilder? Texture.LoadGraphicFromFile? Auf jeden Fall Danke für die regen Rückmeldungen. Für Probleme macht aber bitte einen neuen Thread auf, damit man später die Antworten leichter findet ;-) Andreas |
Re: Andorra 2D [Ver. 0.45, 24.12.08]
Zitat:
Zitat:
![]() MFG Benjamin |
Re: Andorra 2D [Ver. 0.45, 24.12.08]
Hallo igel!
Ich habe mal die „GetSpritesAt“ umgesetzt:
Delphi-Quellcode:
Ich weiß nicht, ob das leeren der Liste eine Art Standard ist? Ich habe mich übrigens für die Variante als Übergabeparameter entschieden, da damit die Verwaltung der Liste komplett an die "Mutterklasse" abgegeben wurde.
{Returns all sprites at the specified position}
procedure GetSpritesAt(const AX, AY : Integer; ASprites : TSpriteList); overload; virtual; {Returns all sprites at the specified position and of a specified type} procedure GetSpritesAt(const AX, AY : Integer; ASprites : TSpriteList; AClass : TSpriteClass); overload; virtual; procedure TSprite.GetSpritesAt(const AX, AY: Integer; ASprites: TSpriteList; AClass: TSpriteClass); var i: Integer; Rect : TAdRect; begin if Assigned(ASprites) then begin ASprites.Clear; // Standard ? for i := 0 to Items.Count - 1 do begin Rect := Items[i].BoundsRect; if (AX >= Rect.Left) and (AX <= Rect.Right) and (AY >= Rect.Top) and (AY <= Rect.Bottom) and (Items[i] is AClass) then begin ASprites.Add(Items[i]); end; end; end; end; procedure TSprite.GetSpritesAt(const AX, AY: Integer; ASprites: TSpriteList); begin GetSpritesAt(AX, AY, ASprites, TSprite); end; MfG xZise |
Re: Andorra 2D [Ver. 0.45, 24.12.08]
Zitat:
[quote="bigben37"] Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:31 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