Wie stellen durchscheinend sprites in pygame
Ich habe gerade erst begonnen Arbeit mit pygame und ich bin versucht, eine semi-transparente Sprites, und die sprite werden die Quell-Datei ist eine nicht-transparente bitmap-Datei von der Festplatte geladen. Ich will nicht zum Bearbeiten der Quell-Bild, wenn ich helfen kann. Ich bin sicher, es gibt eine Möglichkeit, dies zu tun mit pygame code, aber Google ist keine Hilfe für mich.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nach dem laden des Bildes, werden Sie brauchen, um einen alpha-Kanal auf die
Surface
. das sieht dann ein wenig so:Lädt das Bild und sofort wandeln Sie es in ein pixel-format, passend für alpha-blending auf der display-Oberfläche. Sie könnten einige andere Oberfläche, die, wenn Sie brauchen, um blit zu einigen anderen, die off-screen-Puffer, die in einem anderen format.
Können Sie einstellen, per-pixel alpha einfach genug, sagen, Sie haben eine Funktion, die ein 3-Tupel für rgb-Farbwert und liefert einige gewünschte 4tuple rgba-Farbe+alpha, Sie verändern könnten, die Fläche pro pixel:
Gibt es andere, nützlichere Wege, dies zu tun, aber dies gibt Ihnen die Idee, wie ich hoffe.
Wenn Ihr Bild einen einfarbigen hintergrund, dass Sie wollen, dass es durchsichtig wurde, können Sie es als color_key Wert, und pygame machen es transparent, wenn blitting das Bild.
zB:
Kann ich noch nicht klar gewesen, in meiner ursprünglichen Frage, aber ich glaube, ich habe es auf meinem eigenen. Das, was ich suchte, entpuppt sich das Surface set_alpha () - Methode, so dass alle ich tun musste, war sicherzustellen, dass die durchscheinenden Bilder waren auf Ihre eigene Oberfläche.
Hier ist ein Beispiel mit meinem abgespeckte code:
Ist dies die beste Technik? Es scheint das die meisten einfach und unkompliziert.
könnten Sie erwägen, Umstellung auf die Verwendung von png-Bildern, wo Sie können tun, jede Art von Transparenz, die Sie möchten, direkt in das Bild.