# HG changeset patch # User Jeremy Thurgood # Date 1251650564 0 # Node ID d7f295c06a4b005352051e518a07b4f9b2c41314 # Parent f4b4d7f44ccab82fd9006112367d890e53dc534f Split gameboard screen. diff -r f4b4d7f44cca -r d7f295c06a4b gamelib/engine.py --- a/gamelib/engine.py Sun Aug 30 15:23:53 2009 +0000 +++ b/gamelib/engine.py Sun Aug 30 16:42:44 2009 +0000 @@ -41,6 +41,8 @@ return MainMenuState(self.game) elif events_equal(e, GO_MAIN_MENU): return MainMenuState(self.game) + elif e.type is not QUIT: + self.game.gameboard.event(e) def paint(self, screen): self.game.gameboard.paint(screen) diff -r f4b4d7f44cca -r d7f295c06a4b gamelib/gameboard.py --- a/gamelib/gameboard.py Sun Aug 30 15:23:53 2009 +0000 +++ b/gamelib/gameboard.py Sun Aug 30 16:42:44 2009 +0000 @@ -1,6 +1,6 @@ import random -from pgu import tilevid +from pgu import gui, tilevid import data @@ -13,11 +13,38 @@ self.tv.tga_load_tiles(data.filepath('tiles.tga'), self.TILE_DIMENSIONS) self.tv.tga_load_level(data.filepath('level1.tga')) + self.tools = tilevid.Tilevid() + self.tools.tga_load_tiles(data.filepath('tiles.tga'), self.TILE_DIMENSIONS) + self.tools.resize((1, 2)) + self.populate_toolbar() + + def populate_toolbar(self): + self.tools.set((0,0), 2) + self.tools.set((0,1), 3) + + def split_screen(self, screen): + leftbar_rect = screen.get_rect() + leftbar_rect.width = self.TILE_DIMENSIONS[0] + 2 + main_rect = screen.get_rect() + main_rect.width -= leftbar_rect.width + main_rect.left += leftbar_rect.width + return screen.subsurface(leftbar_rect), screen.subsurface(main_rect) + def paint(self, screen): - self.tv.paint(screen) + leftbar, main = self.split_screen(screen) + self.tools.paint(leftbar) + self.tv.paint(main) + + def update_vid(self, vid, subsurface): + offset = subsurface.get_offset() + return [r.move(offset) for r in vid.update(subsurface)] def update(self, screen): - return self.tv.update(screen) + leftbar, main = self.split_screen(screen) + updates = [] + updates.extend(self.update_vid(self.tools, leftbar)) + updates.extend(self.update_vid(self.tv, main)) + return updates def loop(self): x = random.randint(0, self.tv.size[0]-1) @@ -25,3 +52,5 @@ tile = random.randint(0, 4) self.tv.set((x, y), tile) + def event(self, e): + pass