X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=naja%2Fscenes%2Fgame.py;h=82e08dbe3a7c6cabd332316a8c7fe0c689fbbdb6;hb=b1e0f7f96569084f2d812184b829ca593d6e2f65;hp=b50065febe42de6526d315cd7573aeadfbc89a5a;hpb=f6212eaa8b011e7a79b1a0d54e2e756cad9e6a19;p=naja.git diff --git a/naja/scenes/game.py b/naja/scenes/game.py index b50065f..82e08db 100644 --- a/naja/scenes/game.py +++ b/naja/scenes/game.py @@ -3,16 +3,18 @@ Gameboard scene. """ import pygame.locals as pgl +import random -from naja.constants import KEYS -from naja.events import SceneChangeEvent +from naja.constants import KEYS, TUNES +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.widgets.robot import RobotWidget -from naja.sound import sound class GameScene(Scene): @@ -20,18 +22,44 @@ class GameScene(Scene): Gameboard scene. """ - def __init__(self, state): + def __init__(self, state, play_sound=True): super(GameScene, self).__init__(state) self.add(PlayerBitsWidget((0, 0), state)) info = InfoAreaWidget((480, 0), state) - self.add(BoardWidget((0, 60), state, info)) + self.board_widget = BoardWidget((0, 60), state, info) + self.add(self.board_widget) self.add(GameBitsWidget((0, 540), state)) self.add(info) self.add(RobotWidget(state)) - sound.play_sound('startup.ogg') + if play_sound: + sound.play_sound('startup.ogg') + background_track = random.choice(TUNES) + sound.play_music(background_track, 0.25) def handle_scene_event(self, ev): from naja.scenes.menu import MenuScene - if ev.type == pgl.KEYDOWN and ev.key in KEYS.QUIT: - SceneChangeEvent.post(MenuScene) - return + if ev.type == pgl.KEYDOWN: + if ev.key in KEYS.QUIT: + sound.stop() + 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) + elif ev.key == pgl.K_EQUALS: + self.state.gameboard.gain_health() + return finish_event()