Mercurial > rinkhals
annotate gamelib/gameboard.py @ 14:d7f295c06a4b
Split gameboard screen.
author | Jeremy Thurgood <firxen@gmail.com> |
---|---|
date | Sun, 30 Aug 2009 16:42:44 +0000 |
parents | 8a7319e4853a |
children | cbbc5da7708a |
rev | line source |
---|---|
9 | 1 import random |
2 | |
14 | 3 from pgu import gui, tilevid |
9 | 4 |
5 import data | |
6 | |
7 | |
8 class GameBoard(object): | |
9 TILE_DIMENSIONS = (20, 20) | |
10 | |
11 def __init__(self): | |
12 self.tv = tilevid.Tilevid() | |
13 self.tv.tga_load_tiles(data.filepath('tiles.tga'), self.TILE_DIMENSIONS) | |
14 self.tv.tga_load_level(data.filepath('level1.tga')) | |
15 | |
14 | 16 self.tools = tilevid.Tilevid() |
17 self.tools.tga_load_tiles(data.filepath('tiles.tga'), self.TILE_DIMENSIONS) | |
18 self.tools.resize((1, 2)) | |
19 self.populate_toolbar() | |
20 | |
21 def populate_toolbar(self): | |
22 self.tools.set((0,0), 2) | |
23 self.tools.set((0,1), 3) | |
24 | |
25 def split_screen(self, screen): | |
26 leftbar_rect = screen.get_rect() | |
27 leftbar_rect.width = self.TILE_DIMENSIONS[0] + 2 | |
28 main_rect = screen.get_rect() | |
29 main_rect.width -= leftbar_rect.width | |
30 main_rect.left += leftbar_rect.width | |
31 return screen.subsurface(leftbar_rect), screen.subsurface(main_rect) | |
32 | |
12
8a7319e4853a
Hooked in the game board.
Jeremy Thurgood <firxen@gmail.com>
parents:
11
diff
changeset
|
33 def paint(self, screen): |
14 | 34 leftbar, main = self.split_screen(screen) |
35 self.tools.paint(leftbar) | |
36 self.tv.paint(main) | |
37 | |
38 def update_vid(self, vid, subsurface): | |
39 offset = subsurface.get_offset() | |
40 return [r.move(offset) for r in vid.update(subsurface)] | |
12
8a7319e4853a
Hooked in the game board.
Jeremy Thurgood <firxen@gmail.com>
parents:
11
diff
changeset
|
41 |
9 | 42 def update(self, screen): |
14 | 43 leftbar, main = self.split_screen(screen) |
44 updates = [] | |
45 updates.extend(self.update_vid(self.tools, leftbar)) | |
46 updates.extend(self.update_vid(self.tv, main)) | |
47 return updates | |
9 | 48 |
49 def loop(self): | |
12
8a7319e4853a
Hooked in the game board.
Jeremy Thurgood <firxen@gmail.com>
parents:
11
diff
changeset
|
50 x = random.randint(0, self.tv.size[0]-1) |
8a7319e4853a
Hooked in the game board.
Jeremy Thurgood <firxen@gmail.com>
parents:
11
diff
changeset
|
51 y = random.randint(0, self.tv.size[1]-1) |
9 | 52 tile = random.randint(0, 4) |
53 self.tv.set((x, y), tile) | |
54 | |
14 | 55 def event(self, e): |
56 pass |