![]() |
Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
Und gleich noch eine:
Zitat:
|
Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
Hallo Manuel,
vielen Dank für die Übersetzungen! Sobald ich einen Moment Zeit finde, baue ich sie ein. :thumb: Andreas |
Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
So... Ich habe gerade dran gedacht und nach diesen Ewigkeiten die Tutorials endlich hochgeladen! Danke nochmal! Jetzt sind ja (fast) alle auf Englisch!
![]() ![]() |
Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
Ahja, im übrigen hast du difficulty bei der Tutorial-Übersicht falsch geschrieben.
|
Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
Ok, habe es korrigiert.
|
Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
Kann es sein das einige der Tutorials nicht vollends dem aktuellen Stand der Engione entsprechen?
Ansonsten muss ich hier ein großes Lob aussprechen! Geniale Arbeit! |
Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
Erstmal danke für das Lob.
Zitat:
![]() |
Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
Fragen über Fragen(ok die letzte ist schon ne weile her...)
Und zwar, wir versuchen im Rahmen einer AG die Engine in der Schule einzusetzen. Allerdings bekommen wir da trotz installiertem DirectX übelste Fehlermeldungen. Kann das daran liegen das Windows 2000 eingesetzt wird? Weil hier zuhause am PC und am Schleppie mit Xp funktionierts tadelos. :thumb: Im Speziellen, die ganzen PNG libraries scheinen wohl ein Knackpunkt zu sein. Wenn du willst schreib ich morgen mal die Fehlermeldungen hier herein. Und auch das demo Game stürtzt sehr gerne ab(Ich glaube Memory Fehler).... das Planeten teil und die Physik Demo jedoch nicht..... MfG Furuha |
Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
Hallo,
das liegt an der Grafikkarte und nicht an Windows 2000 - ich war auf die (im nachhinein) doofe Idee gekommen, die Kollsionsabfrage (Pixelcheck) über die Grafikkarte laufen zu lassen. Deshalb laufen diese Demos "Wormhunter" und "PixelCheck" nur mit etwas moderneren/leistungsfähigeren Grafikkarten - die Grafikkarte muss den DirectX 9c Standard vollständig erfüllen. Ein Workaround für dieses Problem ist das verwenden einer eigenen Kollisionsabfrage, die durch überschreiben von TSprite.CheckCollision bewerkstelligt werden kann. Ich habe aber auf jeden Fall vor das Spriteengine System komplett neu zu schreiben und diesen blöden Fehler von oben zu beheben. |
Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
Hi an alle!
ich weiß, dass es eine recht simple und kaum fragenswürde Frage ist...aber ich verzweifel nunmal bald. ich habe delphi 2007 und die neuste andorra version mein problem : delphi kann andorra nicht wirklich benutzen (erstellt kein form oder ist zumindest nicht sichtbar [keine 100% auslastung]) hab das reprequise package runtergeladen um die units neu zu kompilieren... hier kommt mein problem ... ich hab wirklich keine ahnung wo hin ich was kopieren soll, damit der compiler d3dx9 und direct3d9 findet.... hab dafür auch die d3dx9_31.dll runtergeladen, weil da irgendwas stand, dass man die braucht....hab aber nirgendswo (google und hier hilfe etc) ein tutorial oder ähnliche probleme gefunden.... falls das hier doch schonmal war, dann bitte ich das zu entschuldigen... aber 62 seiten sind dann doch zuviel um alles durchzulesen..die hilfe bietet mir ironischer weise auch kaum hilfe... danke schonmal im voraus :wall: lg Terry |
Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
Hallo,
irgendwie habe ich den vorhergehenden Beitrag übersehen - Andorra 2D ist keine Komponentensammlung, du kannst das "nur" durch aufnehmen in die "uses"-Klausel verwenden. Wen es interessiert: Im Rahmen meiner besonderen Lernleistung in Informatik ist ein Dokument mit dem Titel "Entwicklung einer 2D Grafikbibliothek" entstanden, das sich mit Andorra 2D befasst. Vielleicht finden interessierte dort ein paar wenige (ich konnte die Arbeit leider nicht sonderlich "Tiefgründig" werden lassen) Hinweise, wie Andorra 2D intern funktioniert. Das Dokument lässt sich hier finden: ![]() |
Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
Hört sich auf jeden Fall sehr interessant an. Hab nur leider nicht die Zeit, werde es mir aber mal morgen detailreich durchlesen.
Hab aber mal ne Frage: Was bedeutet der "dicke Mal-Punkt" auf Seite 15 unten? Hab übrigens vor kurzem angefangen, mich mit Andorra 2D zu beschäftigen. Erster Eindruck bis jetzt echt super!! |
Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
Der Malpunkt soll "skalar Multipliziert" heißen (Skalarprodukt).
|
Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
Achsooo... :wink:
edit: Jetzt hab ich endlich kapiert, was HAL bedeutet... |
Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
Hallo, eine Frage zum gestretchten Zeichnen (mir fällt gerade kein deutsches Wort dazu ein)
Ich habe TImageSprites in einer TSpriteEngine. Diese möchte ich gerne gestretcht, so wie bei "TImage.stretch", gezeichnet haben Funktioniert das? Bisher habe ich nur StretchDraw gefunden, aber die SpriteEngine übernimmt das zeichnen ja automatisch |
Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
Um Bilder gestreckt zu zeichnen, passe die Eigenschaften "TImageSprite.Width/Height" nach dem zuweisen von "TImageSprite.Image" entsprechend an.
|
Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
Dankeschön! Klappt wie es soll
|
Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
Ich habe ein Problem seit ich die neue Andorra-Version nutze. Wenn ich Andorra initialisieren will (über den AdSetupDlg, egal welche Einstellung ich dabei wähle), erhalte ich immer folgenden Fehler:
Zitat:
|
Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
Hallo,
was für eine Komponente übergibst du in AdDraw.Create? |
Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
Zitat:
Edit: Habs mal geändert und explizit das konkrete TForm übergeben. Damit klappt es. Wo genau der Unterschied ist, ist mir jetzt nicht wirklich klar, aber so funktioniert es. |
Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
In "OnCreate" ist Application.MainForm nil.
|
Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
Autsch. Das erklärt das natürlich. Wieder was gelernt und Problem gelöst :dp:
|
Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
Hallo, wie kann ich AdFont anpassen?(Schriftart, Größe etc.)
|
Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
Einfach folgendes:
Delphi-Quellcode:
Wichtig: Die Fontvariable nicht freigeben, darum kümmert sich der Fontmanager.
font := AdDraw.Fonts.GenerateFont('Tahoma', 12, [afBold]);
font.Color := clRed; font.TextOut(...); |
Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
Danke, werd ich probieren.
|
Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
Hallo, ich habe eine Klasse (TEinheit) von TImageSprite abgeleitet und dort einige Eigenschaften hinzugefügt.
Gibt es irgendeine Möglichkeit, dass das folgende funktioniert?:
Delphi-Quellcode:
angeklickt ist eine der neuen Eigenschaften(Boolean) aber da GetSpriteAt ein Sprite liefert, kennt er das nicht.
AdSpriteEngine2.GetSpriteAt(p.x, p.y).angeklickt := true;
Kann mir jemand helfen? Danke und mfG PS(Edit): Das mit den Fonts klappt inzwischen, danke |
Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
Dann
![]() |
Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
Ah, vielen Dank.
|
Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
Hallo, ich hab da nochmal ein Problem:
Ich bin im Moment dabei bei meinem Leveleditor für mein Spiel von TImage zu Andorra zu wechseln. Das eigentliche Spiel läuft schon super mit Andorra. Nun mein Problem: Im OnCreate-Ereignis Erzeuge ich das ganze Andorra-Zeugs und anschließend meine Sprites und weise ihnen als Breite und Hoehe 48 zu und als X und Y Werte ihre Position im 2 dimensionen Array multipliziert mit 48 (Sprite[1,1] hat also die Koordinaten 48/48. Das ganze wird aber nicht so dargestellt. Die Sprites werden vergrößert, aber immernoch schön aneinander dargestellt, als hätte man Breite, Höhe, X und Y verändert. Wenn ich mir die Koordinaten der Maus auf dem Bildschirm ausgeben lasse, sehe ich das die Sprites auf dem Bildschirm ca. 100 Pixel hoch und 125 Pixel breit sind. Lasse ich mir die Daten aber mit ShowMessage ausgeben sind sie so wie sie sollen. Hier noch etwas Code der relevant sein müsste:
Delphi-Quellcode:
TLevelEditorSprite = class(THintergrundBild)
tag: integer; hint: string; end; procedure TLevelEditor.FormCreate(Sender: TObject); var i,h: integer; const startgroesse = 48; begin Timer1.Interval := 100; zoom := startgroesse; Panel1.caption := ''; left := Form1.left + 20; top := Form1.top + 20; ListBox1.OnKeyDown := FormKeyDown; Label1.caption := ''; Label2.caption := 'Steuerung:'+#13#10+ 'Bewegen der Oberfläche: W,A,S,D'+#13#10+ 'Quellcode generieren: M'+#13#10+ 'Vergrössern/Verkleinern: +/-'; Label3.caption := 'Größe: '+IntToStr(startgroesse)+'*'+IntToStr(startgroesse); Panel2.caption := ''; for i := 0 to StrToInt(Form1.objektZurueckgeben(-1)) do ListBox1.Items.Add(Form1.objektZurueckgeben(i)); ListBox1.ItemIndex := 0; Image1.Picture.Bitmap.LoadFromFile( programmpfad+'bilder\'+ListBox1.Items.Strings[ListBox1.ItemIndex]+'.bmp'); AdDraw := TAdDraw.Create(Panel1); AdDraw.DllName := programmpfad+'AndorraDX93D.dll'; if AdDraw.Initialize then begin //Application.OnIdle := Idle; //Ich rufe das ganze in einem Timer auf AdImageList := TAdImageList.Create(AdDraw); Form1.AndorraBilderZuweisen(AdImageList); AdSpriteEngine := TSpriteEngine.Create(nil); AdSpriteEngine.Surface := AdDraw; AdPerCounter := TAdPerformanceCounter.Create; setLength(hb,15,10); for i := 0 to high(hb) do for h := 0 to high(hb[0]) do bildErzeugen(i,h,startgroesse); panelAnpassen; label4.caption := 'Spalten: '+IntToStr(high(hb)+1)+' Zeilen: '+IntToStr(high(hb[0])+1); end; end; procedure TLevelEditor.bildErzeugen(xNummer,yNummer,groesse:integer); begin hb[xNummer,yNummer] := TLevelEditorSprite.Create(AdSpriteEngine); Form1.hbdatenZuweisen(hb[xNummer,yNummer],0,AdImageList); with hb[xNummer,yNummer] do begin hint := IntToStr(xNummer)+'t'+IntToStr(yNummer); X := xNummer * groesse; Y := yNummer * groesse; width := groesse; height := groesse; visible := true; end; end; procedure TLevelEditor.panelAnpassen; begin Panel1.Width := Round((high(hb)+1)*zoom); Panel1.Height := Round((high(hb[0])+1)*zoom); end; procedure TForm1.hbdatenZuweisen(bild:THintergrundBild;objektNummer:integer;AndorraImageList:TAdImageList); begin Bild.Image := AndorraImageList.Find(AnsiLowerCase(objektZurueckgeben(objektNummer))); with Bild do case objektNummer of 0: begin wand := false; AnimActive := false; AnimLoop := false; AnimSpeed := 0; AnimStart := 0; AnimStop := 0; end; 1: begin ... 6: begin //Wand Haus wand := true; AnimActive := false; AnimLoop := false; AnimSpeed := 1; AnimStart := 1; AnimStop := 1; AnimPos := 0; end; end; end; procedure TForm1.AndorraBilderZuweisen(AndorraImageList: TAdImageList); begin with AndorraImageList.Add('schuss') do begin Texture.LoadGraphicFromFile(programmpfad+'bilder\schuss.bmp',true,clWhite); PatternWidth := 20; PatternHeight := 20; end; with AndorraImageList.Add('scrollpfeile') do ... AndorraImageList.Restore; end; |
Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
Ich hab jetzt nicht den ganzen Quelltext gelesen, aber wenn ich mich nicht irre, könnte
Delphi-Quellcode:
helfen...?! :gruebel:
ScreenToClient(TPoint);
|
Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
Leider nicht...
bei "ScreenToClient(TPoint);" gibts immer diesen Fehler: [Pascal Fehler] LevelEditorUnit.pas(141): E2029 '(' erwartet, aber ')' gefunden TPoint will wohl irgendwelche Parameter. Oder wo genau soll ich die Zeile hinschreiben? Ich hab das jetzt an verschiedenen Stellen im OnCreate versucht |
Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
wenn du i-wo TPoint verwendest kannst du bei ScreenToClient in die Klammer die Variable einfügen...
|
Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
TPoint ist ein record bestehend aus einer X und Y Koordinate.
Also entweder du übergibst einen TPoint, oder mit Point() kannst du dir aus zwei Koordinaten einen Punkt "erstellen". MfG xZise |
Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
:gruebel: Könnt ihr mir zu TPoint ein Beispiel machen, ich versteh nur Bahnhof
|
Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
Delphi-Quellcode:
oder z.B.
var Point: TPoint;
... GetCursorPos(Point); ScreenToClient(Point);
Delphi-Quellcode:
Verstanden? :cheers:
Point := TPoint(50,60);
|
Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
Steh ich heute auf dem Schlauch :oops: So richtig check ich das noch nicht...
Aber meint ihr das bringt mir was? Vielleicht hab ich meine Frage auch nicht so ganz klar ausgedrückt. Die Sprites werden eindeutig zu groß dargestellt, da sie vorher mit TImages kleiner waren und die Sprites, die im eigentlichen Spiel sind (64*64) kleiner dargestellt werden, als diese eigentlich 48*48 großen. Also meine Mauskoordinaten stimmen (Mouse.CursorPos.X), falls ihr mir gerade versucht an der Maus zu helfen. |
Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
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 |
Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
Hallo ihr Experten,
ich hab mal wieder eine Frage. Mit
Delphi-Quellcode:
kann ich einem AdGUIImage ein Bild aus einer Datei zuweisen... Aber ich komme einfach nicht darauf, wie ich das aus einer AdImageList rausholen kann...?!
AdGUIImage.Picture.LoadFromFile(path+'Bild',true,clFuchsia);
Könnt ihr mir helfen. mfG :cheers: |
Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
Zugegebenermaßen ist folgende Methode etwas doof, momentan aber der einzige Weg (ungetestet):
Delphi-Quellcode:
var
bmp: TAdBitmap; begin bmp := TAdBitmap.Create; bmp.ReserveMemory(AdImage.Width, AdImage.Height); AdImage.Texture.Texture.SaveToBitmap(bmp); AdGUIImage.Picture.LoadFromGraphic(bmp); bmp.Free; end; |
Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
Vielen Dank für die schnelle Antwort, aber was ist in deinem Bespiel
AdImage ? Danke, mfG. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:50 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