From 3dd6b473efa26eff5c02e45a0b405c46c8a52806 Mon Sep 17 00:00:00 2001 From: adrianna Date: Sat, 10 Sep 2016 16:25:27 +0200 Subject: [PATCH] added pausing to night and moved reset tool after other tools --- tabakrolletjie/scenes/day.py | 14 +++++++------- tabakrolletjie/scenes/night.py | 31 +++++++++++++++++++++++++++++-- tabakrolletjie/widgets.py | 2 +- 3 files changed, 37 insertions(+), 10 deletions(-) diff --git a/tabakrolletjie/scenes/day.py b/tabakrolletjie/scenes/day.py index 968f241..17690e2 100644 --- a/tabakrolletjie/scenes/day.py +++ b/tabakrolletjie/scenes/day.py @@ -79,11 +79,9 @@ class DayScene(BaseScene): def create_tools(self, gamestate): tools = [] - x, y, step = 0, SCREEN_SIZE[1] - 40, 50 - tools.append(ImageButton( - '32', 'default_cursor.png', name='reset tool', pos=(x, y))) - x += step + x, y, step = 50, SCREEN_SIZE[1] - 40, 50 + tools.append(ImageButton('32', 'seed.png', name='seed', pos=(x, y))) x += step @@ -96,8 +94,10 @@ class DayScene(BaseScene): x += step tools.append(ImageButton( - '32', 'night.png', name='start night', - pos=(SCREEN_SIZE[0] - 100, y))) + '32', 'default_cursor.png', name='reset tool', pos=(x, y))) + + tools.append(ImageButton( + '32', 'night.png', name='start night', pos=(SCREEN_SIZE[0] - 100, y))) tools.append(ImageButton( '32', 'exit.png', name='exit', pos=(SCREEN_SIZE[0] - 50, y))) return tools @@ -205,7 +205,7 @@ class DayScene(BaseScene): elif ev.key == pgl.K_e: from .night import NightScene SceneChangeEvent.post(scene=NightScene()) - elif ev.key == pgl.K_SPACE: + elif ev.key == pgl.K_SPACE and DEBUG: self._paused = not self._paused elif ev.type == pgl.MOUSEBUTTONDOWN: if ev.button == 1: diff --git a/tabakrolletjie/scenes/night.py b/tabakrolletjie/scenes/night.py index 848bb54..e3b51cb 100644 --- a/tabakrolletjie/scenes/night.py +++ b/tabakrolletjie/scenes/night.py @@ -14,6 +14,7 @@ from ..utils import debug_timer, shadowed_text from ..loader import loader from ..transforms import Overlay from ..turnip import Turnip +from ..widgets import ImageButton from ..constants import NIGHT_LENGTH, DEBUG, FONTS, SCREEN_SIZE @@ -32,11 +33,19 @@ class NightScene(BaseScene): self._turnips.append(turnip) self._soil = loader.load_image( "textures", "soil.png", transform=self.DARKNESS) + self._tools = self.create_tools(gamestate) self._total_ticks = 0 self._do_ticks = True + self._paused = False self._eaten_tonight = 0 self._night_over_text = [] + def create_tools(self, gamestate): + tools = [] + tools.append(ImageButton( + '32', 'pause.png', name='pause play', pos=(SCREEN_SIZE[0] - 150, SCREEN_SIZE[1] - 40))) + return tools + @debug_timer("night.render") def render(self, surface, gamestate): surface.blit(self._soil, (0, 0)) @@ -56,6 +65,9 @@ class NightScene(BaseScene): self._obstacles.render(surface) self._lights.render_fittings(surface) + for tool in self._tools: + tool.render(surface) + for text, text_pos in self._night_over_text: surface.blit(text, text_pos, None) @@ -67,8 +79,10 @@ class NightScene(BaseScene): if ev.key in (pgl.K_q, pgl.K_ESCAPE): from .menu import MenuScene SceneChangeEvent.post(scene=MenuScene()) - if ev.key == pgl.K_e and DEBUG: + elif ev.key == pgl.K_e and DEBUG: self._end_night() + elif ev.key == pgl.K_SPACE: + self.toggle_pause() elif ev.type == pgl.MOUSEBUTTONDOWN: if not self._do_ticks: # Any mouse press exits @@ -77,6 +91,19 @@ class NightScene(BaseScene): self._lights.toggle_nearest(ev.pos, surfpos=True) print self._lights.lit_by(ev.pos, surfpos=True) + # Check tools + for tool in self._tools: + if tool.pressed(ev): + if tool.name == 'pause play': + self.toggle_pause() + + def toggle_pause(self): + self._paused = not self._paused + pause_img = "play.png" if self._paused else "pause.png" + for tool in self._tools: + if tool.name == 'pause play': + tool.update_image("32", pause_img) + def _to_day(self): # End the night from .day import DayScene @@ -103,7 +130,7 @@ class NightScene(BaseScene): @debug_timer("night.tick") def tick(self, gamestate): - if self._do_ticks: + if self._do_ticks and not self._paused: if self._total_ticks < NIGHT_LENGTH: self._mould.tick(gamestate, self._space, self._lights) self._lights.tick() diff --git a/tabakrolletjie/widgets.py b/tabakrolletjie/widgets.py index c1d71c3..3d12a30 100644 --- a/tabakrolletjie/widgets.py +++ b/tabakrolletjie/widgets.py @@ -76,7 +76,7 @@ class ImageButton(Button): pos, padding) def update_image(self, *imgparts, **kwargs): - transform=kwargs.pop("transform", NullTransform()) + transform = kwargs.pop("transform", NullTransform()) self._img = loader.load_image(*imgparts, transform=transform) def render(self, surface): -- 2.34.1