pygame σε εφαρμογή PyGTK

ψήφοι
8

Ποιος είναι ο καλύτερος τρόπος για να χρησιμοποιήσετε pygame (SDL) μέσα σε μια εφαρμογή PyGTK;

Ψάχνω για μια μέθοδο που μου επιτρέπει να έχουν μια περιοχή σχεδίασης στο παράθυρο GTK και την ίδια στιγμή να είναι σε θέση να διαχειριστεί και τις δύο εκδηλώσεις GTK και SDL.

Δημοσιεύθηκε 25/08/2008 στις 03:36
πηγή χρήστη
Σε άλλες γλώσσες...                            


7 απαντήσεις

ψήφοι
1

Μπορεί να σας ενδιαφέρει σε αυτό το νήμα μηνυμάτων . Φαίνεται σαν να συστήσω εναντίον της.

Απαντήθηκε 25/08/2008 στις 07:08
πηγή χρήστη

ψήφοι
7

Δεν έχω προσπαθήσει ο ίδιος, αλλά ακούσει πολλά για τους άλλους ανθρώπους που έχω δοκιμάσει, δεν είναι ένας δρόμος που θέλετε να πάει κάτω.

Υπάρχει η εναλλακτική λύση της τοποθέτησης του GUI στην ίδια pygame. Υπάρχουν πολλές gui εργαλείων που χτίστηκε ειδικά για pygame που θα μπορούσατε να χρησιμοποιήσετε. Οι περισσότεροι από αυτούς είναι μάλλον ημιτελής, αλλά υπάρχουν 2 μεγάλα, ενεργά διατηρηθεί αυτά: PGU και OcempGUI . Ο πλήρης κατάλογος στην ιστοσελίδα pygame είναι εδώ .

Απαντήθηκε 26/08/2008 στις 18:36
πηγή χρήστη

ψήφοι
1

Pygame λειτουργεί πολύ καλύτερα όταν μπορεί να διαχειριστεί δικό του παράθυρο, ή ακόμα καλύτερα, χρησιμοποιήστε ολόκληρη την οθόνη. GTK έχει αρκετά ευέλικτο widgets για να επιτρέψει τη δημιουργία μιας περιοχής σχεδίασης.

Αυτή η σελίδα μπορεί να βοηθήσει, ωστόσο, αν θέλετε να το δοκιμάσετε.

Απαντήθηκε 28/08/2008 στις 09:04
πηγή χρήστη

ψήφοι
0

Προσπάθησα να γίνει αυτό τον εαυτό μου πριν από λίγο καιρό, και δεν πήρα ποτέ να λειτουργεί τέλεια. Στην πραγματικότητα ποτέ δεν πήρα για να λειτουργήσω καθόλου σε περιβάλλον Windows, όπως το κράτησε συντριβή ολόκληρο το λειτουργικό σύστημα και έτρεξα έξω από την υπομονή. Συνέχισα να το χρησιμοποιήσει αν και όπως ήταν σημαντικό μόνο έτρεξε σε Linux, και ήταν μόνο ένα μικρό έργο. Θα ήθελα να συστήσω ανεπιφύλακτα να διερευνήσει εναλλακτικές λύσεις. Πάντα ένιωθα σαν μια άσχημη hack, και με έκανε να αισθάνομαι βρώμικα.

Απαντήθηκε 17/09/2008 στις 21:45
πηγή χρήστη

ψήφοι
0

Υπάρχει μια απλή λύση που θα μπορούσε να λειτουργήσει για σας.

Γράψτε τα πράγματα PyGTK και pygame πράγματα ως ξεχωριστές εφαρμογές. Στη συνέχεια, από την εφαρμογή PyGTK καλέσει την εφαρμογή pygame, χρησιμοποιώντας os.system να καλέσει την εφαρμογή pygame. Εάν πρέπει να μοιράζονται τα δεδομένα μεταξύ των δύο, στη συνέχεια, είτε να χρησιμοποιήσετε μια βάση δεδομένων, σωλήνες ή IPC.

Απαντήθηκε 13/10/2008 στις 21:38
πηγή χρήστη

ψήφοι
1

http://faq.pygtk.org/index.py?file=faq23.042.htp&req=show όλα αναφέρει:

Θα πρέπει να δημιουργήσετε ένα χώρο σχεδίασης και να ορίσετε τη μεταβλητή SDL_WINDOWID περιβάλλον αφού είναι συνειδητοποίησα:

 os εισαγωγής

 GObject εισαγωγής
 gtk εισαγωγής
 pygame εισαγωγής

 WINX = 400
 Κρασάτο = 200

 παράθυρο = gtk.Window ()
 window.connect ( 'διαγραφή-γεγονός', gtk.main_quit)
 window.set_resizable (Λάθος)
 περιοχή = gtk.DrawingArea ()
 area.set_app_paintable (True)
 area.set_size_request (WINX, κρασάτο)
 window.add (περιοχή)
 area.realize ()

 # Force SDL να γράψει σε περιοχή σχεδίασης μας
 os.putenv ( 'SDL_WINDOWID', str (area.window.xid))

 # Πρέπει να ξεπλύνετε το βρόχο εκδήλωση Xlib διαφορετικά δεν μπορούμε
 # Πρόσβασης το XWindow οποίο set_mode () απαιτεί
 gtk.gdk.flush ()

 pygame.init ()
 pygame.display.set_mode ((WINX, κρασάτο), 0, 0)
 οθόνη = 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 ()

 ενώ gtk.event_pending ():
     # Pygame / SDL επεξεργασία εκδήλωση πηγαίνει εδώ
     gtk.main_iteration (Λάθος)
Απαντήθηκε 04/12/2008 στις 16:52
πηγή χρήστη

ψήφοι
0

Το έργο ζάχαρη έχει πολλές δραστηριότητες που χτίστηκε με PyGTK και pygame.

Έγραψαν ένα lib στήριξης για να επιτευχθεί αυτό, που ονομάζεται Sugargame . Θα πρέπει να είναι σε θέση να το τροποποιήσετε για τις τακτικές εφαρμογές PyGTK αντί για ζάχαρη.

Εδώ είναι ένα κεφάλαιο στην ανάπτυξη βιβλίο Sugar, για το πώς να το χρησιμοποιήσετε.

Η lib επιτρέπει την επικοινωνία γεγονότα μεταξύ GTK και pygame.

Απολαμβάνω!

Απαντήθηκε 08/11/2013 στις 11:51
πηγή χρήστη

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