X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=naja%2Fscenes%2Fgame.py;h=dda5e1eb53f5832bce5eabe4738eb186d321dc95;hb=172e2665331fba1bcda0a5b07774db8523076e66;hp=48625007fb34934711ce4cd497567987f8c383fe;hpb=c783c52af634dc5a11dc25ac45f2ad79f0d3d62d;p=naja.git diff --git a/naja/scenes/game.py b/naja/scenes/game.py index 4862500..dda5e1e 100644 --- a/naja/scenes/game.py +++ b/naja/scenes/game.py @@ -4,15 +4,16 @@ Gameboard scene. import pygame.locals as pgl -from .scene import Scene -from .menu import MenuScene - +from naja.constants import KEYS +from naja.events import SceneChangeEvent, finish_event +from naja.options import options +from naja.scenes.scene import Scene +from naja.sound import sound from naja.widgets.board import BoardWidget from naja.widgets.player_bits import PlayerBitsWidget from naja.widgets.game_bits import GameBitsWidget from naja.widgets.info_area import InfoAreaWidget - -from naja.events import SceneChangeEvent +from naja.widgets.robot import RobotWidget class GameScene(Scene): @@ -20,14 +21,37 @@ class GameScene(Scene): Gameboard scene. """ - def __init__(self): - super(GameScene, self).__init__() - self.widgets.append(PlayerBitsWidget((0, 0))) - self.widgets.append(BoardWidget((0, 60))) - self.widgets.append(GameBitsWidget((0, 540))) - self.widgets.append(InfoAreaWidget((480, 0))) - - def handle_event(self, ev): - if ev.type == pgl.KEYUP and ev.key in (pgl.K_q, pgl.K_ESCAPE): - SceneChangeEvent.post(scene=MenuScene()) - return + def __init__(self, state): + super(GameScene, self).__init__(state) + self.add(PlayerBitsWidget((0, 0), state)) + info = InfoAreaWidget((480, 0), state) + self.add(BoardWidget((0, 60), state, info)) + self.add(GameBitsWidget((0, 540), state)) + self.add(info) + self.add(RobotWidget(state)) + sound.play_sound('startup.ogg') + + def handle_scene_event(self, ev): + from naja.scenes.menu import MenuScene + if ev.type == pgl.KEYDOWN: + if ev.key in KEYS.QUIT: + SceneChangeEvent.post(MenuScene) + return + if options.cheat_enabled: + if ev.key == pgl.K_0: + self.state.player.bits.toggle_bit(0) + elif ev.key == pgl.K_1: + self.state.player.bits.toggle_bit(1) + elif ev.key == pgl.K_2: + self.state.player.bits.toggle_bit(2) + elif ev.key == pgl.K_3: + self.state.player.bits.toggle_bit(3) + elif ev.key == pgl.K_4: + self.state.player.bits.toggle_bit(4) + elif ev.key == pgl.K_5: + self.state.player.bits.toggle_bit(5) + elif ev.key == pgl.K_6: + self.state.player.bits.toggle_bit(6) + elif ev.key == pgl.K_7: + self.state.player.bits.toggle_bit(7) + return finish_event()