Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi [Andorra] Text auf Sprites ausgeben (https://www.delphipraxis.net/105842-%5Bandorra%5D-text-auf-sprites-ausgeben.html)

Codewalker 31. Dez 2007 14:24


[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

igel457 31. Dez 2007 14:55

Re: [Andorra] Text auf Sprites ausgeben
 
Ganz einfach über:
Delphi-Quellcode:
TSprite.Engine.Surface.Canvas

Codewalker 31. Dez 2007 15:45

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

igel457 31. Dez 2007 16:26

Re: [Andorra] Text auf Sprites ausgeben
 
Und was ist mit
Delphi-Quellcode:
with Engine.Surface.Fonts.GenerateFont('Arial',12,[]) do
begin
  TextOut(x,y,'Test');
end;
EDIT: Also folgendes funktioniert bei mir:
Delphi-Quellcode:
procedure TCharacter.DoDraw;
begin
  inherited;
  with Engine.Surface.Canvas do
  begin
    TextOut(Round(WorldX),Round(WorldY),'bla');
  end;
end;

wicht 31. Dez 2007 16:40

Re: [Andorra] Text auf Sprites ausgeben
 
Delphi-Quellcode:
FAdDraw.Canvas.Font := FAdFontCollection.Font['1'];
FAdDraw.Canvas.Textout(X, Y, FPointsText);
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...
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!

STS301 31. Dez 2007 16:50

Re: [Andorra] Text auf Sprites ausgeben
 
Zitat:

Zitat von wicht
Keine Ahnung, ob das im Sinne des Erfinders ( :wink: ) ist, aber das hat immer funktioniert.

was glaubst du, mit wem schreibst du? :lol:

igel457 31. Dez 2007 16:52

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

wicht 31. Dez 2007 17:01

Re: [Andorra] Text auf Sprites ausgeben
 
Zitat:

Zitat von STS301
was glaubst du, mit wem schreibst du? :lol:

Dafür der Smiley :-D Den Herrn Igel kenne ich und ääh.. Die Lobeshymnen lasse ich mal aus, das weiß der sowieso schon. Freut mich jedenfalls, dass mein Post nicht so stark verpeilt war, wie ich dachte. Oder war er das? Egal, ich werde erst morgen wieder hier rein schauen... Schönen Abend!

Codewalker 31. Dez 2007 17:46

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 11:30 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz