sdl2.ext.manager - Basic scene manager.

Basic scene manager.

class sdl2.ext.manager.Manager(width=None, height=None, tile_size=None, limit_fps=None, window_color=None, resources_path=None)

Bases: object

Manage scenes and the main game loop.

At each loop the events are passed down to the active scene and it’s update method is called.

__init__(width=None, height=None, tile_size=None, limit_fps=None, window_color=None, resources_path=None)

Initialization.

Parameters:
  • width (int) – the width of the screen in pixels. default to sdl2.cfg[MANAGER][SCREEN_WIDTH] or, if unavailable, the desktop width.
  • height (int) – the height of the screen in pixels. default to sdl2.cfg[MANAGER][SCREEN_HEIGHT] or, if unavailable, the desktop height.
  • tile_size (int) – size of a (square) tile’s side in pixels.
  • limit_fps (int) – maximum frames per second that should be drawn.
  • window_color (4-tuple) – the window’s background color, as a tuple of 4 integers representing Red, Greehn, Blue and Alpha values (0-255).
Usage:
m = Manager() # start with default parameters m.set_scene(SceneBase) # set a scene. This is a blank base scene m.execute() # call the main loop
draw_fps()

Draw the fps display.

on_event()

Handle the events and pass them to the active scene.

on_update()

Update the active scene.

present()

Flip the GPU buffer.

run()

Main loop handling events and updates.

set_scene(scene=None, **kwargs)

Set the scene.

Parameters:
  • scene (SceneBase) – the scene to be initialized
  • kwargs – the arguments that should be passed to the scene
class sdl2.ext.manager.KeyboardStateController

Bases: object

A class that keeps track of keyboard modifiers and locks.

__init__()

Initialization.

alt

...

combine(alt=False, ctrl=False, shift=False)

...

ctrl

...

process(event)

Process the current event and update the keyboard state.

shift

...

class sdl2.ext.manager.SceneBase(**kwargs)

Bases: object

Basic scene of the game.

New Scenes should be subclasses of SceneBase.

__init__(**kwargs)

Initialization.

factory

Reference to sdl2.ext.SpriteFactory instance.

Returns:Manager.factory
height

Main window height.

Returns:Manager.height
kb_state

Reference to KeyboardStateController instance.

Returns:Manager.kb_state
on_key_press(event, sym, mod)

Called on keyboard input, when a key is held down.

Parameters:
  • event (sdl2.events.SDL_Event) – The base event, as passed by sdl2 Unless specifically needed, sym and mod should be used instead.
  • sym (int) – Integer representing code of the key pressed. For printable keys chr(key) should return the corresponding character.
  • mod (KeyboardStateController) – the keyboard state for modifiers and locks. See :class:KeyboardStateController
on_key_release(event, sym, mod)

Called on keyboard input, when a key is released.

By default if the Escape key is pressed the manager quits. If that behaviour is desired you can call super().on_key_release( event, sym, mod) on a child class.

Parameters:
  • event (sdl2.events.SDL_Event) – The base event, as passed by sdl2 The other arguments should be used for a higher level interaction, unless specifically needed.
  • sym (int) – Integer representing code of the key pressed. For printable keys chr(key) should return the corresponding character.
  • mod (KeyboardStateController) – the keyboard state for modifiers and locks. See :class:KeyboardStateController
on_mouse_drag(event, x, y, dx, dy, button)

Called when mouse buttons are pressed and the mouse is dragged.

Parameters:
  • event (sdl2.events.SDL_Event) – The base event, as passed by sdl2 The other arguments should be used for a higher level interaction, unless specifically needed.
  • x (int) – horizontal coordinate, relative to window.
  • y (int) – vertical coordinate, relative to window.
  • dx (int) – relative motion in the horizontal direction
  • dy (int) – relative motion in the vertical direction
  • button (str, "RIGHT"|"MIDDLE"|"LEFT") – string representing the button pressed.
on_mouse_motion(event, x, y, dx, dy)

Called when the mouse is moved.

Parameters:
  • event (sdl2.events.SDL_Event) – The base event, as passed by sdl2 The other arguments should be used for a higher level interaction, unless specifically needed.
  • x (int) – horizontal coordinate, relative to window.
  • y (int) – vertical coordinate, relative to window.
  • dx (int) – relative motion in the horizontal direction
  • dy (int) – relative motion in the vertical direction
on_mouse_press(event, x, y, button, double)

Called when mouse buttons are pressed.

Parameters:
  • event (sdl2.events.SDL_Event) – The base event, as passed by sdl2 The other arguments should be used for a higher level interaction, unless specifically needed.
  • x (int) – horizontal coordinate, relative to window.
  • y (int) – vertical coordinate, relative to window.
  • button (str, "RIGHT"|"MIDDLE"|"LEFT") – string representing the button pressed.
  • double (bool, True|False) – boolean indicating if the click was a double click.
on_mouse_scroll(event, offset_x, offset_y)

Called when the mouse wheel is scrolled.

Parameters:
  • event (sdl2.events.SDL_Event) – The base event, as passed by sdl2 The other arguments should be used for a higher level interaction, unless specifically needed.
  • offset_x (int) – the amount scrolled horizontally, positive to the right and negative to the left.
  • offset_y (int) – the amount scrolled vertically, positive away from the user and negative toward the user.
on_update()

Graphical logic.

quit()

Stop the manager main loop.

renderer

Reference to sdl2.ext.Renderer instance.

Returns:Manager.renderer
resources

Reference to sdl2.ext.Resources instance.

Returns:Manager.resources
sdlrenderer

Reference to sdl2.SDL_Renderer instance.

Returns:Manager.renderer.sdlrenderer
spriterenderer

Reference to sdl2.ext.TextureSpriteRenderSystem instance.

Returns:Manager.spriterenderer
width

Main window width.

Returns:Manager.height