Mercurial > mamba
view mamba/widgets/game.py @ 119:119c0fb758c2
Move key handling into GameWidget and GameWidget into widgets.game.
author | Simon Cross <hodgestar@gmail.com> |
---|---|
date | Sun, 11 Sep 2011 20:56:13 +0200 |
parents | |
children | 275f0be6946c |
line wrap: on
line source
"""Display the game area.""" from pygame.rect import Rect from pygame.locals import KEYDOWN, K_LEFT, K_RIGHT, K_DOWN, K_UP from mamba.widgets.base import Widget from mamba.snake import Snake class GameWidget(Widget): def __init__(self, world, offset=(0, 0)): self.world = world self.actions = self.create_action_map() rect = Rect(offset, world.get_size()) super(GameWidget, self).__init__(rect) self.focussable = True def create_action_map(self): actions = {} actions[K_LEFT] = (self.world.snake.set_orientation, (Snake.LEFT,)) actions[K_RIGHT] = (self.world.snake.set_orientation, (Snake.RIGHT,)) actions[K_DOWN] = (self.world.snake.set_orientation, (Snake.DOWN,)) actions[K_UP] = (self.world.snake.set_orientation, (Snake.UP,)) return actions def event(self, ev): if ev.type == KEYDOWN and ev.key in self.actions: func, args = self.actions[ev.key] func(*args) return True def draw(self, surface): self.world.update() self.world.draw(surface)