class LevelController:
    """ It's the controller for a Level """
    MAX_LASERS = 10
    
    def __init__(self, application):
        """ Initialize the Level Controller """
        self.application = application
        self.level = Level()
        self.window = LevelView(application, self.level)

    def run(self):
        """ Run the controller """
        self.application.setCentralWidget(self.window)
        TheGameEngine.start(self.window, self)

    def performGameCycle(self):
        """ Perform a single Game Cycle """
        self.level.performGameCycle()

    def keyPressed(self, key):
        """ Called when the Game Engine gets a keyPressed event """
        if key == Qt.Key_Left:
            self.level.ship.left()
        elif key == Qt.Key_Right:
            self.level.ship.right()
        elif key == Qt.Key_Down:
            self.level.ship.down()
        elif key == Qt.Key_Up:
            self.level.ship.up()
        elif key == Qt.Key_Space:
            if len(self.level.lasers) < LevelController.MAX_LASERS and not self.level.over and not self.level.paused:
                self.level.addLaser()
                self.window.addLaser()
        elif key == Qt.Key_Return or key == Qt.Key_Enter:
            if self.level.over:
                QCoreApplication.instance().quit()
            else:
                self.performPauseAction()
                    
    def performPauseAction(self):
        """ Perform a Pause Action """
        if self.level.paused:
            self.level.unpause()
        else:
            self.level.pause()

    def keyReleased(self, key):
        """ Called when the Game Engine gets a keyReleased event """
        if key == Qt.Key_Left:
            self.level.ship.releaseLeft()
        elif key == Qt.Key_Right:
            self.level.ship.releaseRight()
        elif key == Qt.Key_Down:
            self.level.ship.releaseDown()
        elif key == Qt.Key_Up:
            self.level.ship.releaseUp()
Exemple #2
0
class LevelController:
    """ Controller for a Level """
    
    def __init__(self, application, level):
        """ Initialize the Level Controller """
        self.application = application
        self.level = level
        self.level.reset()
        self.window = LevelView(application, self.level)

    def run(self):
        """ Run the controller """
        self.previousController = TheGameEngine.controller
        self.application.addWidget(self.window)
        self.application.setCurrentWidget(self.window)
        TheGameEngine.start(self.window, self)
        self.window.grabKeyboard()

    def performGameCycle(self):
        """ Perform a single Game Cycle """
        self.level.performGameCycle()

    def keyPressed(self, key):
        """ Called when the Game Engine gets a keyPressed event """
        if key == Qt.Key_Left:
            self.level.drone.left()
        elif key == Qt.Key_Right:
            self.level.drone.right()
        elif key == Qt.Key_Down:
            self.level.drone.down()
        elif key == Qt.Key_Up:
            self.level.drone.up()
        elif not (self.level.lost() or self.level.won()):
            if key == Qt.Key_S:
                self.level.drone.scan()
            elif key == Qt.Key_D:
                self.level.drone.defuse()
            elif key == Qt.Key_F:
                self.level.drone.defuseCarefully()
            elif key == Qt.Key_E:
                self.level.drone.performEMP()
        else:
            if key == Qt.Key_S:
                self.previousController.run()

    def keyReleased(self, key):
        """ Called when the Game Engine gets a keyReleased event """
Exemple #3
0
class LevelController:
    """ Controller for a Level """
    def __init__(self, application, level):
        """ Initialize the Level Controller """
        self.application = application
        self.level = level
        self.level.reset()
        self.window = LevelView(application, self.level)

    def run(self):
        """ Run the controller """
        self.previousController = TheGameEngine.controller
        self.application.addWidget(self.window)
        self.application.setCurrentWidget(self.window)
        TheGameEngine.start(self.window, self)
        self.window.grabKeyboard()

    def performGameCycle(self):
        """ Perform a single Game Cycle """
        self.level.performGameCycle()

    def keyPressed(self, key):
        """ Called when the Game Engine gets a keyPressed event """
        if key == Qt.Key_Left:
            self.level.drone.left()
        elif key == Qt.Key_Right:
            self.level.drone.right()
        elif key == Qt.Key_Down:
            self.level.drone.down()
        elif key == Qt.Key_Up:
            self.level.drone.up()
        elif not (self.level.lost() or self.level.won()):
            if key == Qt.Key_S:
                self.level.drone.scan()
            elif key == Qt.Key_D:
                self.level.drone.defuse()
            elif key == Qt.Key_F:
                self.level.drone.defuseCarefully()
            elif key == Qt.Key_E:
                self.level.drone.performEMP()
        else:
            if key == Qt.Key_S:
                self.previousController.run()

    def keyReleased(self, key):
        """ Called when the Game Engine gets a keyReleased event """
Exemple #4
0
 def __init__(self, application, level):
     """ Initialize the Level Controller """
     self.application = application
     self.level = level
     self.level.reset()
     self.window = LevelView(application, self.level)
Exemple #5
0
 def __init__(self, application, level):
     """ Initialize the Level Controller """
     self.application = application
     self.level = level
     self.level.reset()
     self.window = LevelView(application, self.level)