Skip to content

Latest commit

 

History

History
177 lines (124 loc) · 4.26 KB

index.rst

File metadata and controls

177 lines (124 loc) · 4.26 KB
orphan:

_static/pygame_menu.png

First steps

Making games using :py:mod:`pygame` is really cool, but most games (or applications) require end-user configuration. Creating complex GUI objects to display a menu can be painful. That why :py:mod:`pygame-menu` was designed.

Here is a simple example of how to create a menu with :py:mod:`pygame-menu` (the code is available in pygame_menu.examples.simple.py):

  1. Import the required libraries
import pygame
import pygame_menu
  1. Initialize pygame
pygame.init()
surface = pygame.display.set_mode((600, 400))
  1. Make your menu
def set_difficulty(value, difficulty):
    # Do the job here !
    pass

def start_the_game():
    # Do the job here !
    pass

menu = pygame_menu.Menu(300, 400, 'Welcome',
                       theme=pygame_menu.themes.THEME_BLUE)

menu.add_text_input('Name :', default='John Doe')
menu.add_selector('Difficulty :', [('Hard', 1), ('Easy', 2)], onchange=set_difficulty)
menu.add_button('Play', start_the_game)
menu.add_button('Quit', pygame_menu.events.EXIT)
  1. Run your menu
menu.mainloop(surface)
_static/first_steps.png

Tadada... !!! Such a beautiful menu \(^o^)/

Interested in :ref:`going deeper into menu design <Creating menus>` ?

.. toctree::
   :maxdepth: 2
   :hidden:
   :caption: First steps

   _source/create_menu
   _source/add_widgets
   _source/add_sounds
   _source/themes
   _source/gallery
   _source/migration_guide


Advanced usage

This chapter define rules and advanced tips and tricks to develop extensions for :py:mod:`pygame-menu`. The main addressed topics are:

.. toctree::
   :maxdepth: 2
   :hidden:
   :caption: Advanced usage

   _source/advanced


Widgets API

A menu is in fact a list of widgets arranged on the same surface. Access to a widget in a menu can easily be done with two methods:

widget = menu.get_widget('MyWidgetID')

selected = menu.get_selected_widget()

Each :py:mod:`pygame_menu` widget and its behaviors are defined in a class. The currently existing classes are:

For advanced programmers, those classes can be used to design custom menus or windows.

Have a look at pygame_menu.widgets.examples.scrollbar.py for instance. It shows how to use the :py:class:`pygame_menu.widgets.ScrollBar` class to display large custom surfaces.

.. toctree::
   :maxdepth: 2
   :hidden:
   :caption: Widgets API

   _source/widgets_button
   _source/widgets_colorinput
   _source/widgets_image
   _source/widgets_label
   _source/widgets_menubar
   _source/widgets_scrollbar
   _source/widgets_selector
   _source/widgets_textinput
   _source/widgets_vmargin


About pygame-menu

This project does not have a mailing list and so the issues tab should be the first point of contact if wishing to discuss the project. If you have questions that you do not feel are relevant to the issues tab or just want to let me know what you think about the library, feel free to email me at pablo@ppizarror.com

.. toctree::
   :maxdepth: 2
   :hidden:
   :caption: About pygame-menu

   _source/license
   _source/contributors


Indices and tables