Changes

Jump to navigation Jump to search
no edit summary
Line 1: Line 1:  
== Sugargame ==
 
== Sugargame ==
   −
Sugargame is a Python package which allows [http://www.pygame.org/ Pygame] programs to run well under Sugar.  
+
Sugargame is a Python package which allows [http://www.pygame.org/ Pygame]  
 +
programs to run well under Sugar.  
 
It is fork of the olcpgames framework, which is no longer maintained.
 
It is fork of the olcpgames framework, which is no longer maintained.
   Line 12: Line 13:  
==== Differences between Sugargame and olpcgames ====
 
==== Differences between Sugargame and olpcgames ====
   −
The olpcgames framework provides a wrapper around Pygame which attempts to allow a Pygame program to run mostly unmodified under Sugar.  To this end, the Pygame program is run in a separate thread with its own Pygame message loop while the main thread runs the GTK message loop.  Also, olpcgames wraps Sugar APIs such as the journal and mesh into a Pygame-like API.
+
The olpcgames framework provides a wrapper around Pygame which attempts to  
 +
allow a Pygame program to run mostly unmodified under Sugar.  To this end,  
 +
the Pygame program is run in a separate thread with its own Pygame message  
 +
loop while the main thread runs the GTK message loop.  Also, olpcgames wraps  
 +
Sugar APIs such as the journal and mesh into a Pygame-like API.
   −
Sugargame takes a simpler approach; it provides a way to embed Pygame into a GTK widget.  The Sugar APIs are used to interact with Sugar, the Pygame APIs are used for the game.   
+
Sugargame takes a simpler approach; it provides a way to embed Pygame into a  
 +
GTK widget.  The Sugar APIs are used to interact with Sugar, the Pygame APIs  
 +
are used for the game.   
    
Sugargame advantages:
 
Sugargame advantages:
Line 33: Line 40:  
==== Wrapping a Pygame program ====
 
==== Wrapping a Pygame program ====
   −
To use Sugargame to Sugarize a Pygame program, set up an activity directory and copy the Sugargame package to it.
+
To use Sugargame to Sugarize a Pygame program, set up an activity directory and  
 +
copy the Sugargame package to it.
    
The activity directory should look something like this:
 
The activity directory should look something like this:
Line 43: Line 51:  
   setup.py            - Install script
 
   setup.py            - Install script
   −
To make the Activity class, start with test/TestActivity.py from the Sugargame distribution.   
+
To make the Activity class, start with test/TestActivity.py from the Sugargame  
 +
distribution.   
   −
The activity should create a single PygameCanvas widget and call run_pygame on it.  Pass the main loop function of the Pygame program.
+
The activity should create a single PygameCanvas widget and call run_pygame on it.   
 +
Pass the main loop function of the Pygame program.
    
  self._canvas = sugargame.canvas.PygameCanvas(self)
 
  self._canvas = sugargame.canvas.PygameCanvas(self)
Line 60: Line 70:  
==== Adding Pygame to a PyGTK activity ====
 
==== Adding Pygame to a PyGTK activity ====
   −
To add Pygame to an existing Sugar activity, create a PygameCanvas widget and call run_pygame on it.   
+
To add Pygame to an existing Sugar activity, create a PygameCanvas widget and call  
 +
run_pygame on it.   
    
  widget = sugargame.canvas.PygameCanvas(self)
 
  widget = sugargame.canvas.PygameCanvas(self)
Line 67: Line 78:  
  widget.run_pygame(self.game.run)
 
  widget.run_pygame(self.game.run)
   −
Due to limitations of Pygame and SDL, there can only be one PygameCanvas in the entire activity.
+
Due to limitations of Pygame and SDL, there can only be one PygameCanvas in the  
 +
entire activity.
   −
The argument to run_pygame is a function structured like a Pygame program.  In the main loop, remember to dispatch GTK messages using gtk.main_iteration().
+
The argument to run_pygame is a function structured like a Pygame program.  In the  
 +
main loop, remember to dispatch GTK messages using gtk.main_iteration().
    
  def main_loop():
 
  def main_loop():
273

edits

Navigation menu