Mercurial > boomslang
diff gamelib/scenes/manual.py @ 390:d9c47a9e3d84
Working manual. (Still needs arrows.)
author | Jeremy Thurgood <firxen@gmail.com> |
---|---|
date | Sat, 28 Aug 2010 19:40:36 +0200 |
parents | 56a05ae56574 |
children | 5cfd68beb6d3 |
line wrap: on
line diff
--- a/gamelib/scenes/manual.py Sat Aug 28 19:55:30 2010 +0200 +++ b/gamelib/scenes/manual.py Sat Aug 28 19:40:36 2010 +0200 @@ -19,42 +19,76 @@ # classes related the computer detail -class PagePrior(Thing): +class PageBase(Thing): + "Displays manual pages" + + def get_page_thing(self): + return self.state.current_detail.things['manual.page'] + + def get_page(self): + return self.get_page_thing().get_data('page') + + def set_page(self, page): + self.get_page_thing().set_page(page) + + +class PagePrior(PageBase): """Prior page in the manual""" NAME = 'manual.page_prior' INTERACTS = { - 'up' : InteractNoImage(594, 82, 30, 58) + 'up' : InteractNoImage(0, 350, 80, 25) } INITIAL = 'up' def is_interactive(self): - page = self.state.current_detail.get_data('page') - return page > 0 + return self.get_page() > 0 def interact_without(self): - page = self.state.current_detail.get_data('page') - self.state.current_detail.set_data('page', page - 1) + self.set_page(self.get_page() - 1) -class PageNext(Thing): +class PageNext(PageBase): """Next page in the manual""" NAME = 'manual.page_next' INTERACTS = { - 'down' : InteractNoImage(594, 293, 30, 58) + 'down' : InteractNoImage(170, 350, 80, 25) } INITIAL = 'down' def is_interactive(self): - page = self.state.current_detail.get_data('page') - return (page + 1) < self.current_detail.get_data('max page') + return self.get_page() < len(self.get_page_thing().INTERACTS) - 1 def interact_without(self): - page = self.state.current_detail.get_data('page') - self.state.current_detail.set_data('page', page + 1) + self.set_page(self.get_page() + 1) + + +class ManualPage(Thing): + """Page in the manual""" + + NAME = 'manual.page' + + INTERACTS = { + 0 : InteractImage(0, 0, 'manual_p1.png'), + 1 : InteractImage(0, 0, 'manual_p2.png'), + 2 : InteractImage(0, 0, 'manual_p3.png'), + 3 : InteractImage(0, 0, 'manual_p4.png'), + } + INITIAL = 0 + + INITIAL_DATA = { + 'page': 0, + } + + def is_interactive(self): + return False + + def set_page(self, page): + self.set_data('page', page) + self.set_interact(page) class ManualDetail(Scene): @@ -62,25 +96,15 @@ FOLDER = 'manual' NAME = 'manual_detail' - SIZE = (640, 400) - - PAGES = ['manual_p1.png', 'manual_p2.png', - 'manual_p3.png', 'manual_p4.png'] - - BACKGROUND = PAGES[0] - - INITIAL_DATA = { - 'page' : 0, - 'max page' : len(PAGES), - } + BACKGROUND = 'manual_detail.png' def __init__(self, state): super(ManualDetail, self).__init__(state) + self.add_thing(ManualPage()) self.add_thing(PagePrior()) self.add_thing(PageNext()) self._scene_playlist = None - self._pages = [get_image(self.FOLDER, x) for x in self.PAGES] def enter(self): self._scene_playlist = get_current_playlist() @@ -89,10 +113,6 @@ def leave(self): change_playlist(self._scene_playlist) - def draw_background(self, surface): - self._background = self._pages[self.get_data('page')] - super(ManualDetail, self).draw_background(surface) - SCENES = [] DETAIL_VIEWS = [ManualDetail]