Source code for xoinvader.state
"""Provides abstract game state."""
[docs]class State(object):
"""Represents game state skeleton.
.. warning:: implement actor base class
:param owner: state's owner
:type owner: `xoinvader.application.Application`
"""
def __init__(self, owner):
self._owner = owner
self._actor = None
self._screen = None
# TODO:
self._music = None
@property
def owner(self):
"""State's owner.
:getter: yes
:setter: no
:type: :class:`xoinvader.application.Application`
"""
return self._owner
@property
def actor(self):
"""Controllable object.
:getter: yes
:setter: no
:type: object
"""
return self._actor
@property
def screen(self):
"""Screen for rendering state's objects.
:getter: yes
:setter: no
:type: `curses.Window`
"""
return self._screen
[docs] def events(self):
"Event handler, calls by `Application.loop` method."
raise NotImplementedError
[docs] def update(self):
"Update handler, calls by `Application.loop` method."
raise NotImplementedError
[docs] def render(self):
"Render handler, calls by `Application.loop` method."
raise NotImplementedError