Hi nochmals,
muss das mal loswerden, das Problem hab ich schon lange.
Es geht um Menus in Spielen. Dies sind ja Surfaces, die sich in deren Updatemethode selbst beblitten mit den aktuellen Werten (HP, MP, Punkte, was auch immer halt). Diese Werte generiere ich natürlich mit Fonts, und via Pygame. Nun habe ich aber immer wieder dasselbe Problem: Fonts sind Surfaces mit Transparenz. Das Menü müsste also jeweils "geleert" werden, ehe die neuen Werte geblittet werden, sonst gibt's Font-Ghetto
Wenn ich nun ein schönes Menü will mit Transparenz und selbstgezeichnetem fancy Rahmen und so und also wirklich so richtig sexy und alles - wie mache ich das..? Ich meine, den screen male ich einfach jedes Frame schwarz aus und basta, dann kann ich wieder blitten was ich will, aber beim Menü geht das natürlich dann nicht. Ich weiss, für Euch total Banane, aber jetzt echt: ich habe bis anhin keine Lösung, die mir gefällt und von der ich mir vorstellen könnte, dass Ihr diese gutheissen würdet...
Erleuchtung?
Für jeden Tipp dankbar,
Henry
Menu - Surfaces
- Don Polettone
- User
- Beiträge: 115
- Registriert: Dienstag 23. November 2010, 20:26
- Wohnort: Schweiz
Ich code, also bin ich.
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Ich kapiere irgend wie Deine Problematik nicht wirklich, aber ich hatte vor einiger Zeit mal als Demo für einen User ein Menü für Pygame geschrieben. Vielleicht bringt Dir das ja irgend wie Erleuchtung oder Nutzen.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
- Don Polettone
- User
- Beiträge: 115
- Registriert: Dienstag 23. November 2010, 20:26
- Wohnort: Schweiz
danke Hyperion,
von der Logik her kann ich da einiges abkupfern
Ich glaube, mein Hauptproblem ist, wie ich ein dirty Surface wieder clean kriege, ohne sie neu laden zu müssen. Mit convert() scheint es nicht zu klappen..?
von der Logik her kann ich da einiges abkupfern
Ich glaube, mein Hauptproblem ist, wie ich ein dirty Surface wieder clean kriege, ohne sie neu laden zu müssen. Mit convert() scheint es nicht zu klappen..?
Ich code, also bin ich.
Einfach die gesamte Anzeige zu beginn des Frames mit Schwarz überzeichnen und anschließend das komplette Menü neu zeichnen. Ich frage mich allerdings, was du genau laden möchtest.
Das Leben ist wie ein Tennisball.
- Don Polettone
- User
- Beiträge: 115
- Registriert: Dienstag 23. November 2010, 20:26
- Wohnort: Schweiz
Jetzt ist alles klar, danke! Ich hatte die Fonts jeweils direkt auf die Surface des Menus selbst geblittet statt erst das Menü und dann die Werte darin auf den screen... Jetzt passt's.
und die Hitabfrage mit den transparenten Pixeln und dem schnellen Projektil auch. Langsam wird's interessant!
Dann kann's ja weitergehen - oh yeah
und die Hitabfrage mit den transparenten Pixeln und dem schnellen Projektil auch. Langsam wird's interessant!
Dann kann's ja weitergehen - oh yeah
Ich code, also bin ich.