![]() |
[Andorra] Text auf Sprites ausgeben
Ich habe ein Spielfeld (gerastert) mit Hilfe von Sprites. Nun möchte ich in der oberen linken Ecke jedes Feldes eine Zahl ausgeben. Wie kann ich das machen? Ein Sprite hat ja keinen Canvas und der Zugriff auf den normalen Canvas klappt auch leider nicht
|
Re: [Andorra] Text auf Sprites ausgeben
Ganz einfach über:
Delphi-Quellcode:
TSprite.Engine.Surface.Canvas
|
Re: [Andorra] Text auf Sprites ausgeben
Hatte ich schon versucht, erzeugt aber beim Ausführen von SpriteEngine.Draw einen nicht näher einzugrenzenden Speicherfehler. Bin gerade auf der Suche, aber habe noch nichts gefunden...
|
Re: [Andorra] Text auf Sprites ausgeben
Und was ist mit
Delphi-Quellcode:
EDIT: Also folgendes funktioniert bei mir:
with Engine.Surface.Fonts.GenerateFont('Arial',12,[]) do
begin TextOut(x,y,'Test'); end;
Delphi-Quellcode:
procedure TCharacter.DoDraw;
begin inherited; with Engine.Surface.Canvas do begin TextOut(Round(WorldX),Round(WorldY),'bla'); end; end; |
Re: [Andorra] Text auf Sprites ausgeben
Delphi-Quellcode:
Keine Ahnung, ob das im Sinne des Erfinders ( :wink: ) ist, aber das hat immer funktioniert. Ist ein Tetris Spiel, und wenn man eine Line weggehauen hat, wird Text mit den Punkten angezeigt, der erst groß ist, über eine Sekunde eingeblendet wird und dabei immer kleiner wird...
FAdDraw.Canvas.Font := FAdFontCollection.Font['1'];
FAdDraw.Canvas.Textout(X, Y, FPointsText); Zugegeben, auf Speichergeschichten habe ich nie geachtet..... und das ist schon ein bisschen her, also nicht mit der aktuellsten Version probiert. Edit: Ihr versucht hier ja, auf einen Sprite zu malen :( .. Ich sollte erst dreimal überlegen und dann Posten, wenn die ersten paar Bier drin sind... Guten Rutsch, trotzdem! |
Re: [Andorra] Text auf Sprites ausgeben
Zitat:
|
Re: [Andorra] Text auf Sprites ausgeben
Doch, so ist das im Sinne des Erfinders ;-) - auf jeden Fall in der letzten Version.
Jetzt hat jedes TAdDraw schon automatisch eine Art "FontCollection", die mit dem "Generate"-Befehl entweder einen Font generiert oder einen existierenden mit den gleichen Eigenschaften zurückgibt. Wenn man es direkt auf das Sprite haben will, sollte man vielleicht noch ein "Release" hinzufügen, damit der Text direkt gezeichnet wird - sonst macht es keinen Unterschied. Auch einen guten Rutsch, Andreas |
Re: [Andorra] Text auf Sprites ausgeben
Zitat:
|
Re: [Andorra] Text auf Sprites ausgeben
Also, alles in Ordnung - eure Lösung ist voll und ganz richtig. Ich hatte mit Dead einen Sprite als ungenutzt markiert und drei Zeilen später mit Free gelöscht ohne ihn aus der SpriteList zu nehmen. War also "menschliches Versagen" :mrgreen:
In diesem Sinne, feiert schön und kommt mir gut ins neue Jahr :cheers: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:01 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