Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   [Andorra2D] - Andorra 2D Extra Unit (https://www.delphipraxis.net/98121-%5Bandorra2d%5D-andorra-2d-extra-unit.html)

xZise 21. Aug 2007 19:48


[Andorra2D] - Andorra 2D Extra Unit
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
Ich habe mir eine Extra Unit für Andorra 2D erstellt.
Bisher bietet sie "nur" zwei Klassen.
Zum einen einen Cursor und zum anderen den sogenannten "Scaler", "Strecher".
Alle Klassen, Enumerationen etc. haben (der einfachheit halber), das Präfix "TAdX".

Nun komme ich zur Beschreibung des Cursors:
Delphi-Quellcode:
TAdXSpriteCursor = class(TImageSprite)
Das ist ein auf ein ImageSprite basierender Cursor, welcher einfach, wie ein Sprite eingeführt werden kann.
Zu Zeit muss man noch selbständig den Cursor zeichen. Wer Vorschläge hat um den Cursor intern zu zeichen sollte es mir sagen ;)
Eigenschaften:
Delphi-Quellcode:
property Visible : Boolean read FVisible write SetVisible;
property ActionPoint : TAdXRelativePoint read FActionPoint write SetActionPoint;
  • Visible - Gibt an, ob der Cursor erscheinen soll. Wenn man die Eigenschaft Visible auf true stellt, setzt er bei allen Controls mit der Eigenschaft Cursor diese auf crNone. Hinweis: Setzt man die Eigenschaft Visible auf false setzt er die Cursor-Eigenschaft der Controls auf crDefault.
  • Actionpoint - Gibt an, an welcher Stelle der Grafik der Klick ausgeführt werden soll. Man kann mithilfe der Funktion "AdXRelativePoint" einen relativen Punkt erstellen. (0, 0 ist links oben und 1, 1 ist unten rechts)

Außerdem gibt es den "Scaler" oder "Strecher":
Delphi-Quellcode:
TAdXStreched = class(TSprite)
Wenn man die Anzeige beliebig skalieren möchte, zum Beispiel um zu zoomen gibt es die Möglichkeit den Scaler zu benutzen.
Man erstellt einfach ein Objekt davon und weißt es der zu skalierenden SpriteEngine zu.
Eigenschaften
Delphi-Quellcode:
property RelativeScale : Double read FRelativeScale write FRelativeScale;
property UseRelativeScale : Boolean read FUseRelativeScale write FUseRelativeScale default true;
property StaticWidth : Double read FStaticWidth write FStaticWidth;
property StaticHeight : Double read FStaticHeight write FStaticHeight;
property ScaleClasses : TAdXScaleClasses read FScaleClasses write FScaleClasses;
  • RelativeScale - Gibt an um wie viel die Sprites vergrößert/kleinert werden (0.5 = halb so groß, 2 = doppelt so groß)
  • UseRelativeScale - Wenn man die relativen Größen verwenden möchte, auf true setzen. Ansonsten auf false.
  • StaticWidth - Gibt an, welche Breite alle (!) Sprites haben sollen.
  • StaticHeight - Gibt an, welche Höhe alle (!) Sprites haben sollen.
  • ScaleClasses - Dies ist eine Sammlung von den Klassentypen (TImageSprite, TBackgroundSprite, ...), welche skaliert werden sollen. (s.o.)
    Zur Zeit wird nur TImageSprites vollständig unterstützt. TBackgroundSprite ist in entwicklung und die anderen Sprites werden normal gezeichnet.

Zusätzlich dazu gibt es noch folgendes:
Delphi-Quellcode:
TAdXRelativePoint = record
  X : Double;
  Y : Double;
end;
Gibt einen realtiven Punkt an.

Delphi-Quellcode:
function AdXRelativePoint(AX, AY : Double) : TAdXRelativePoint;
Erstellt aus zwei relativen Achsen einen relativen Punkt.

Delphi-Quellcode:
TAdXScaleClass = (scImageSprite, scBackgroundSprite, scLightSprite, scParticelSprite);
TAdXScaleClasses = set of TAdXScaleClass;
Ist eine Sammlung der verschiedenen Standardmäßigen Klassentypen. (Benötigt für TAdXStreched)

MfG
xZise

PS: Erstellt & kompiliert mit TurboDelphi Explorer.

igel457 22. Aug 2007 16:41

Re: [Andorra2D] - Andorra 2D Extra Unit
 
Hallo xZise, ich werde mir deine Units mal anschauen - für das Skalieren gibt es aber in der aktuellen CVS Version schon die TAdSpriteEngineEx, mir der man ganz einfach Zoomen und zusätzlich noch Splitscreens erstellen kann.

Schön das du meine Engine verwendest,
Andreas

xZise 22. Aug 2007 17:26

Re: [Andorra2D] - Andorra 2D Extra Unit
 
Entschuldigung, aber ich kenne mich mit CVS net so aus ;) Wie kann ich da die neueste Version downloaden?
Weil nur die AdSpritEngineEx.pas hilft mir nicht weiter :)

Zitat:

Zitat von igel457
Schön das du meine Engine verwendest

Zwar gibt es immer mal wieder hürden ;)
Aber ansonsten hat es sich gelohnt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:37 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