Seite 1 von 1

[PyGAME]GUI Programmirung ...

Verfasst: Mittwoch 27. Dezember 2006, 11:01
von KC25m
Hallo Leute ,
habe mir das bekannte PyUI besorgt und damit ein Shopsystem aufgesetzt.
Läuft soweit super nur das es zuviel resourcen friest und zuviel zeit zum anzeigen brauch :(
Teilweisse brauch der neuaufbau einer seite bis zu 5 Sec.
und frist dann bis zu 120MB Ram !

Also habe ich mich ran gesetzt um die wenigen Funktionen die wir brauchen nachzubilden.
Links , Buttons , Input , Label , Container ...
Läuft super , nur habe ich das problem das ich die Buttons und Imputboxen via rect zeichne und dadurch recht eingeschränkt bin im design.

Wie zerlege ich am besten eine BMP datei mit nen vorgefertigten Button so das ich ihm auf jede größe Skalieren kann ohne großen aufwand ?

Danke Euch schon mal.

Gruß KC

Verfasst: Mittwoch 27. Dezember 2006, 13:27
von BlackJack
Üblicherweise macht man das indem man folgendes "Raster" benutzt:

Code: Alles auswählen

+--+-----+--+
|  |     |  |
+--+-----+--+
|  |     |  |
|  |     |  |
+--+-----+--+
|  |     |  |
+--+-----+--+
Man hat also je ein Stückchen Bild für alle vier Ecken und für den Rahmen und einen Innenbereich. Die Ecken platziert man entsprechend und die Rahmenteile werden in der Länge bzw. Breite variiert, entweder durch skalieren oder Wiederholung um den Platz aufzufüllen.

Verfasst: Mittwoch 27. Dezember 2006, 14:31
von KC25m
Skalierung ist echt mies unter PyGames , auffüllunge wären echt super.
Wie bekomme ich ein schnelle routine hin zum auffüllen da die normale BASIC methode zu langsam ist ...

weite=64
For x in range(weite/CutBreite):
s.blit(buttenimg,(x*CutX+startX,y,(CutX,CutY,CutBreite,CutHöhe))

Arbeite leider nicht so oft mit dem bescheiden und pasten an bestimmten stellen ...

Danke schon mal

Verfasst: Mittwoch 27. Dezember 2006, 15:36
von BlackJack
Eigentlich sollte das nicht so langsam sein. Man kann es beschleunigen indem man die Füllungen einmal in "Überbreite" erzeugt, also z.B. einen horizontalen Rahmen auf ein Surface mit Bildschirmbreite "kachelt" und dann für einen endgültigen Button ein passendes Stück aus dem grossen Surface ausschneidet. Und fertige Buttons in einer bestimmten Grösse, aber noch ohne Inhalt/Schrift könnte man sicher auch cachen.

Verfasst: Mittwoch 27. Dezember 2006, 16:00
von KC25m
Hey stimmt könnte die Cachen ... danke für den Tip !
Wird halt nur schwirig bei Muster in der mitte ...

Aber sollte reichen wenn ich das so mache.

Danke noch mal , werde den Maximal wert rerechnen den ich brauche und dann halt als Cachfile die datei im ram halten ...

Tausend Danke an Euch :)