Delphi-PRAXiS
Seite 24 von 26   « Erste     14222324 2526      

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)

3_of_8 27. Mär 2009 21:51

Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
 
Und gleich noch eine:

Zitat:

Andorra 2D tutorials
Canvas

Introduction
This tutorial covers the Andorra 2D canvas which exists since version 0.2. It is an object that can be drawn on similarly to the Windows GDI. Currently the following objects can be drawn with the Andorra 2D canvas:
  • Text
  • Lines
  • Arrows
  • Rectangles
  • Tetragons
  • Circles/ellipses
This doesn't sound very spectacular, but it has to be considered that most objects can be drawn with colour gradients and textures.

Use
The TAdDraw object contains its own canvas object, (just like every Andorra 2D surface derived from TAdRenderingSurface, that includes TAdTextureSurface) which can be accessed easily. To use canvas-specific types, the unit "AdCanvas" should be included.
Delphi-Quellcode:
AdDraw1.BeginScene;
AdDraw1.ClearSurface(clBlack);

with AdDraw1.Canvas do
begin
  //This is where the canvas code will be put
  Release; //<-- If this line is left out, nothing is drawn.
end;

AdDraw1.EndScene;
AdDraw1.Flip;
Internally, the canvas manages so-called "display lists". In those, the canvas objects are stored. Upon calling "Release", the list is drawn and a new one is created.

The colour palette
The unit "AdConsts.pas" shall be briefly mentioned. It contains all the SVG colour constants defined by the W3C. (Seehttp://www.w3.org/TR/css3-color/#svg-color) These colours can be used easily.

Pens and brushes
Just like the TCanvas, the TAdCanvas has two essential objects: A pen and a brush. The pen defines how lines are supposed to look, the brush defines the appearance of the filling.
TAdBrush has the following properties:
Delphi-Quellcode:
Color:TAndorraColor //Default colour
GradientColor:TAndorraColor
GradientDirecton:TAdCanvasGradientDirection //Direction of the gradient (gdVertical, gdHorizontal)
Style:TAdBrushStyle //Style of the filling (abClear, abSolid, abGradient)
Texture:TAd2dTexture //Texture the object is filled with
TextureMode:TAdCanvasTextureMode //Specifies the way the object is filled with the texture (tmTile, tmStretch, tmStretchAlign)
TexturePosition:TAdCanvasTexturePosition //Where the texture is supposed to be (tpStatic, tpDynamic)
BlendMode:TAd2dBlendMode
The AdPen looks similar:
Delphi-Quellcode:
Color:TAndorraColor
Width:single
Texture:TAd2dTexture
TextureMode:TAdCanvasTextureMode //The way the line is filled with the texture (tmTile, tmStretch, tmStretchAlign)
TexturePosition:TAdCanvasTexturePosition //Specifies where the texture is supposed to be (tpStatic, tpDynamic)
PenPosition:TAdPenPosition //Specifies the line's position (ppOuter,ppMiddle,ppInner)
Style:TAdPenStyle //(apNone, apSolid)
BlendMode:TAd2dBlendMode
Drawing lines
There are two commands that are important for drawing lines:
Delphi-Quellcode:
MoveTo(X,Y) //Positioning the pen at the specified position
LineTo(X,Y) //Draw a line from the last position or the position where the pen has been set to via MoveTo
Example 1:
http://andorra.sourceforge.net/tutots/canvas1.png
Delphi-Quellcode:
//Draws a black line from (0;0) to (100;100)
Pen.Color := AdCol32_Black; // := Ad_ARGB(255, 0, 0, 0);
MoveTo(0,0);
LineTo(100,100);
Example 2:
http://andorra.sourceforge.net/tutots/canvas2.png
Delphi-Quellcode:
//Draws a thick line with a colour gradient from (0;0) to (100;100)
Pen.Width := 4;
Pen.Color := Ad_ARGB(255,0,0,255);
MoveTo(0,0);
Pen.Color := Ad_ARGB(255,255,0,0);
LineTo(100,100);
Drawing rectangles
This is done with the command "Rectangle":

Example 1:
http://andorra.sourceforge.net/tutots/canvas3.png
Delphi-Quellcode:
//Draws a blue rectangle with brown border from (1;1) to (100;100);
Pen.Color := AdCol32_Coral;
Brush.Color := AdCol32_CornflowerBlue;
Rectangle(1,1,100,100);
Example 2:
http://andorra.sourceforge.net/tutots/canvas4.png
Delphi-Quellcode:
//Draws a rectangle with horizontal colour gradient and blue border from (1;1) to (100;100)
Pen.Color := Ad_ARGB(255,0,0,255);;
Pen.Style := apSolid;
Brush.Color := Ad_ARGB(255,255,255,0);
Brush.GradientColor := Ad_ARGB(255,255,0,255);
Brush.GradientDirecton := gdHorizontal;
Rectangle(1,1,100,100);
Drawing Circles
This is done with the commands "Circle" and "Ellipse".

Example 1:
http://andorra.sourceforge.net/tutots/canvas5.png
Delphi-Quellcode:
//Draws a circle with a colour gradient around the point (50;50) with a radius of 50px
Pen.Style := apNone;
Brush.Color := AdCol32_Azure;
Brush.GradientColor := AdCol32_Orange;
Circle(50,50,50);
Drawing text
This is done with the ocmmand "TextOut"

Example 1:
http://andorra.sourceforge.net/tutots/canvas6.png
Delphi-Quellcode:
//Draws blue text
Pen.Color := Ad_ARGB(200, 0, 0, 255);
TextOut(0,0,'Test Text!');
Example 2:
http://andorra.sourceforge.net/tutots/canvas7.png
Delphi-Quellcode:
Pen.Color := AdCol32_Black;
Font := AdDraw.Fonts.GenerateFont('Comic Sans MS',12, [afItalic]);
TextOut(0,0,'Test Text!');
Copyright and Licence
(c) by Andreas Stöckel Mai 2007
Translation by 3_of_8 (Manuel Eberl)

Revision 2: December 2007
Revision 3: July 2008

The content of this tutorial is subject to the GNU Licence for Free Documentation.

igel457 27. Mär 2009 22:03

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

igel457 11. Apr 2009 16:02

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!

http://andorra.sf.net/index.php?bb=particles1eng
http://andorra.sf.net/index.php?bb=canvas1eng

3_of_8 11. Apr 2009 17:04

Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
 
Ahja, im übrigen hast du difficulty bei der Tutorial-Übersicht falsch geschrieben.

igel457 11. Apr 2009 17:15

Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
 
Ok, habe es korrigiert.

furuha 12. Apr 2009 11:39

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!

igel457 12. Apr 2009 11:46

Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
 
Erstmal danke für das Lob.

Zitat:

Zitat von furuha
Kann es sein das einige der Tutorials nicht vollends dem aktuellen Stand der Engione entsprechen?

Kann schon sein - auf jeden Fall nicht die Tutorials hier in der DP anschauen, sondern auf der Website (http://andorra.sf.net/index.php?section=tutorials). Wenn du irgendwo Fehler findest, teile sie mir am besten gleich mit.

furuha 28. Mai 2009 21:58

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

igel457 29. Mai 2009 14:57

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.

MrTerry 9. Jun 2009 12:57

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

igel457 22. Jun 2009 20:17

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:
http://andorra.sourceforge.net/tutots/bll2009.pdf (3MB)

Jakob Ullmann 22. Jun 2009 20:30

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!!

igel457 22. Jun 2009 20:33

Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
 
Der Malpunkt soll "skalar Multipliziert" heißen (Skalarprodukt).

Jakob Ullmann 22. Jun 2009 20:58

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

edit: Jetzt hab ich endlich kapiert, was HAL bedeutet...

fui-tak 5. Jul 2009 13:25

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

igel457 5. Jul 2009 19:48

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.

fui-tak 7. Jul 2009 13:54

Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
 
Dankeschön! Klappt wie es soll

Codewalker 9. Jul 2009 16:41

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:

Failed to initialize Andorra (No window framework that is supported by both, the parent control and the graphic plugin had been found. Try to use another graphic plugin or include other window frameworks.
Ich habe schon die DLLs durch die aus der aktuellen Version ersetzt und alle möglichen Einstellungen durchprobiert. Ich nutze kein WindowFramework von Andorra sondern die ganz normale VCL. Wo liegt das Problem?

igel457 9. Jul 2009 16:48

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

was für eine Komponente übergibst du in AdDraw.Create?

Codewalker 9. Jul 2009 17:27

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

Zitat von igel457
was für eine Komponente übergibst du in AdDraw.Create?

Application.MainForm

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.

igel457 9. Jul 2009 21:02

Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
 
In "OnCreate" ist Application.MainForm nil.

Codewalker 10. Jul 2009 07:48

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:

Vasco da Gama 5. Aug 2009 18:24

Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
 
Hallo, wie kann ich AdFont anpassen?(Schriftart, Größe etc.)

igel457 5. Aug 2009 18:30

Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
 
Einfach folgendes:
Delphi-Quellcode:
  font := AdDraw.Fonts.GenerateFont('Tahoma', 12, [afBold]);
  font.Color := clRed;
  font.TextOut(...);
Wichtig: Die Fontvariable nicht freigeben, darum kümmert sich der Fontmanager.

Vasco da Gama 5. Aug 2009 18:32

Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
 
Danke, werd ich probieren.

Vasco da Gama 10. Aug 2009 17:56

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:
    AdSpriteEngine2.GetSpriteAt(p.x, p.y).angeklickt := true;
angeklickt ist eine der neuen Eigenschaften(Boolean) aber da GetSpriteAt ein Sprite liefert, kennt er das nicht.
Kann mir jemand helfen?
Danke und mfG

PS(Edit): Das mit den Fonts klappt inzwischen, danke

igel457 10. Aug 2009 18:42

Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
 
Dann caste es doch.

Vasco da Gama 10. Aug 2009 18:53

Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
 
Ah, vielen Dank.

fui-tak 22. Aug 2009 14:53

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;

Vasco da Gama 22. Aug 2009 17:44

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:
ScreenToClient(TPoint);
helfen...?! :gruebel:

fui-tak 23. Aug 2009 14:27

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

Vasco da Gama 23. Aug 2009 14:30

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...

xZise 23. Aug 2009 14:37

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

fui-tak 23. Aug 2009 15:38

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

Vasco da Gama 23. Aug 2009 16:21

Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
 
Delphi-Quellcode:
var Point: TPoint;

...

GetCursorPos(Point);
ScreenToClient(Point);
oder z.B.
Delphi-Quellcode:
Point := TPoint(50,60);
Verstanden? :cheers:

fui-tak 23. Aug 2009 17:20

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.

xZise 23. Aug 2009 17:33

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

Vasco da Gama 24. Aug 2009 12:43

Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
 
Hallo ihr Experten,
ich hab mal wieder eine Frage.
Mit
Delphi-Quellcode:
AdGUIImage.Picture.LoadFromFile(path+'Bild',true,clFuchsia);
kann ich einem AdGUIImage ein Bild aus einer Datei zuweisen... Aber ich komme einfach nicht darauf, wie ich das aus einer AdImageList rausholen kann...?!

Könnt ihr mir helfen.

mfG :cheers:

igel457 24. Aug 2009 13:24

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;

Vasco da Gama 24. Aug 2009 14:31

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.
Seite 24 von 26   « Erste     14222324 2526      

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