![]() |
Mit canvas gezeichnetes "verschwinden" lassen
Ich probiere gerade eine Lebensanzeige für ein Spiel mit convas zu erzeugen.
ein Balken, der bei weniger Leben kleiner wird. DAs mit dem Zeichnen habe ich auch geschafft, es teichnet je nach LP das Teil entsprechend lang das Prob: das was es vorher gezeichnet hat ist noch sichtbar, kann man irgendwie das (es ist ein image) wieder komlett transparent machen, bevor es das neue malt? mit cldefault das ganze ausfüllen, da wird es schwarz [edit=Matze]Tippfehler im Titel korrigiert, damit das Thema leichter über die Suche auffindbar ist. MfG, Matze[/edit] |
Re: Mit convas gezeichnetes "verschwinden" lassen
Hallo,
da mußt du schon vorher den Untergrund also deine "Spielfläche" ablegen, bei neu zeichnen zuerst alte spielfläche wiederherstellen und Balken neu Zeichnen. Natürlich kannst du dazu auch nur einen Teil deines Bildes ablegen und später wiederherstellen z.B. den Bereich deines Balkens. |
Re: Mit convas gezeichnetes "verschwinden" lassen
Nimm ein temporäres Bitmap, in das du zeichnest, statt direkt auf das sichtbare Bitmap. Das tempBitmap leerst du vor jedem neuzeichnen mit .Assign (nil) (.Width und .Height musst du dann auch wieder neu setzen) und übergibst es nach dem Zeichnen dem sichtbaren Bitmap per .Assign (tempBitmap);
So wird das auch bei Spielen gemacht. Die ganze Szene wird erst in einen virtuellen Bildschirm gezeichnet / gerendert und dann einfach getauscht. |
Re: Mit convas gezeichnetes "verschwinden" lassen
Hi,
bei meinem Tip ging ich davon aus das schrimm das zu zeichnende Pic zuerst im Speicher anfertigt, bevor er es darstellt. Trotzdem ist es meines erachtens einfacher einzelne Teile des Temppics einzeln nur auszutauschen als alles komplett neu aufzubauen, kommt natürlich immer auch auf die Art des Spiels drauf an, welchen Weg man geht. |
Re: Mit convas gezeichnetes "verschwinden" lassen
Na ok, ich habe jetzt einfach die Hindergrundfarbe jedes mal drüber gemalt, ehe ichd as neue male.
Ich hatte gehofft, es gibt einen befehl, wo mit man alle in diesem objekt gezeichneten convas löschen kann |
Re: Mit convas gezeichnetes "verschwinden" lassen
Drübermalen kann einen Flackereffekt zur Folge haben. Selbst wenn's bei dir nicht flackern sollte, auf einem anderen Rechner kann das schonwieder anders ausschauen oder bei dir anfangen, wenn du viele Objekte auf dem Bild zeichnest. Deswegen ist erstmal virtuell zeichnen und dann austauschen die saubere Lösung. Und btw: Es heisst Canvas, nicht Convas. ;)
|
Re: Mit convas gezeichnetes "verschwinden" lassen
also wenn er nur per canvas zeichnet reicht es das TFormzu refreshen
Delphi-Quellcode:
dabei werden alerdings alle canvas'Objecte' gelöscht. Evtl. über 'n Timer in gesunden Intervallen refreshen und nach internen Zahlenangaben neu zeichnen lassen?!
z.b. Form1.refresh;
Hoff ich konnt helfen |
Re: Mit convas gezeichnetes "verschwinden" lassen
entscheide dich doch für ne backgr-farbe in dem balken und anstatt den balken zu verkleinern einfach den hintergrund vergrößern, z.B. Schwarz
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:20 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 by Thomas Breitkreuz