pygame innenfor et pyGTK søknad

stemmer
9

Hva er den beste måten å bruke pygame (SDL) innenfor en PyGTK søknaden?

Jeg søker etter en metode som gjør det mulig for meg å ha en tegneområdet i GTK vinduet og samtidig være i stand til å håndtere både GTK og SDL hendelser.

Publisert på 25/08/2008 klokken 04:36
kilden bruker
På andre språk...                            


7 svar

stemmer
7

Jeg har aldri forsøkt det selv, men å høre mye om andre mennesker som har prøvd, det er ikke en vei du ønsker å gå ned.

Det er et alternativ å sette gui i pygame seg selv. Det er nok av gui verktøy bygget spesielt for pygame som du kan bruke. De fleste av dem er ganske uferdig, men det er to store, aktivt vedlikeholdt seg: PGU og OcempGUI . Den fullstendige listen på pygame nettstedet er her .

Svarte 26/08/2008 kl. 19:36
kilden bruker

stemmer
1

http://faq.pygtk.org/index.py?file=faq23.042.htp&req=show nevner det hele:

Du må opprette en tegneområdet og sette miljøvariabelen SDL_WINDOWID etter at den er realisert:

 import os

 import gobject
 import gtk
 import pygame

 Winx = 400
 Winy = 200

 vindu = gtk.Window ()
 window.connect ( 'delete-event', gtk.main_quit)
 window.set_resizable (usann)
 areal = gtk.DrawingArea ()
 area.set_app_paintable (sann)
 area.set_size_request (Apex, winy)
 window.add (område)
 area.realize ()

 # Force SDL å skrive på vår tegneområdet
 os.putenv ( 'SDL_WINDOWID', str (area.window.xid))

 # Vi trenger å skylle Xlib hendelsen løkke ellers kan vi ikke
 # Tilgang til Xwindow som set_mode () krever
 gtk.gdk.flush ()

 pygame.init ()
 pygame.display.set_mode ((Apex, winy), 0, 0)
 skjerm = pygame.display.get_surface ()

 image_surface = pygame.image.load ( 'foo.png')
 screen.blit (image_surface, (0, 0))

 gobject.idle_add (pygame.display.update)

 window.show_all ()

 mens gtk.event_pending ():
     # Pygame / SDL hendelse behandling går her
     gtk.main_iteration (usann)
Svarte 04/12/2008 kl. 17:52
kilden bruker

stemmer
1

Pygame fungerer mye bedre når den kan håndtere et eget vindu, eller enda bedre, bruke hele skjermen. GTK har fleksible nok moduler for å tillate opprettelse av en tegning område.

Denne siden kan hjelpe, men hvis du ønsker å prøve det.

Svarte 28/08/2008 kl. 10:04
kilden bruker

stemmer
1

Du kan være interessert i denne meldingstråden . Ser ut som de anbefaler mot den.

Svarte 25/08/2008 kl. 08:08
kilden bruker

stemmer
0

The Sugar Prosjektet har flere aktiviteter bygget med PyGTK og pygame.

De skrev en støtte lib for å oppnå dette, kalt Sugargame . Du bør være i stand til å endre den for vanlige PyGTK apps i stedet for sukker.

Her er et kapittel i Sugar utvikling bok om hvordan du bruker den.

Lib gir mulighet for å kommunisere hendelser mellom GTK og pygame.

Nyt!

Svarte 08/11/2013 kl. 13:51
kilden bruker

stemmer
0

Det er en enkel løsning som kan fungere for deg.

Skriv PyGTK ting og pygame ting som separate programmer. Deretter fra PyGTK applikasjonen ringe pygame programmet, ved hjelp os.system å ringe pygame programmet. Hvis du trenger å dele data mellom de to da enten bruke en database, rør eller IPC.

Svarte 13/10/2008 kl. 22:38
kilden bruker

stemmer
0

Prøvde jeg gjort det meg en stund siden og jeg har aldri fått det til å fungere perfekt. Egentlig jeg aldri fikk det til å fungere i det hele tatt under Windows, så det holdt å krasje hele OS og jeg gikk tom for tålmodighet. Jeg fortsatte å bruke den selv som det var bare viktig det kjørte på Linux, og var bare et lite prosjekt. Jeg vil sterkt anbefale deg å undersøke alternativer. Det alltid føltes som en ekkel hack, og gjorde meg føler meg skitten.

Svarte 17/09/2008 kl. 22:45
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more