Mercurial > rinkhals
changeset 39:ec79aabe2bf1
Scroll game window with arrow keys.
author | Jeremy Thurgood <firxen@gmail.com> |
---|---|
date | Mon, 31 Aug 2009 14:19:13 +0000 |
parents | 03121c89d5fd |
children | 678421bd58ee |
files | gamelib/gameboard.py |
diffstat | 1 files changed, 16 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/gamelib/gameboard.py Mon Aug 31 13:28:59 2009 +0000 +++ b/gamelib/gameboard.py Mon Aug 31 14:19:13 2009 +0000 @@ -1,5 +1,5 @@ import pygame -from pygame.locals import MOUSEBUTTONDOWN +from pygame.locals import MOUSEBUTTONDOWN, KEYDOWN, K_UP, K_DOWN, K_LEFT, K_RIGHT from pgu import gui import data @@ -32,6 +32,7 @@ def __init__(self, gameboard, vid, **params): gui.Widget.__init__(self, **params) self.gameboard = gameboard + vid.bounds = pygame.Rect((0, 0), vid.tile_to_view(vid.size)) self.vid = vid self.width = params.get('width', 0) self.height = params.get('height', 0) @@ -49,6 +50,9 @@ self.height = height return self.width, self.height + def move_view(self, x, y): + self.vid.view.move_ip((x, y)) + def event(self, e): if e.type == MOUSEBUTTONDOWN: self.gameboard.use_tool(e) @@ -98,7 +102,17 @@ self.tv.set(pos, self.selected_tool) def event(self, e): - self.disp.event(e) + if e.type == KEYDOWN: + if e.key == K_UP: + self.tvw.move_view(0, -self.TILE_DIMENSIONS[1]) + if e.key == K_DOWN: + self.tvw.move_view(0, self.TILE_DIMENSIONS[1]) + if e.key == K_LEFT: + self.tvw.move_view(-self.TILE_DIMENSIONS[0], 0) + if e.key == K_RIGHT: + self.tvw.move_view(self.TILE_DIMENSIONS[0], 0) + else: + self.disp.event(e) def clear_foxes(self): for fox in self.foxes: