Example #1
0
    def __init__(self, gameName, startViewName, iconName = "icon"):
        """Initialization of the main class."""
        self.gamName = gameName
        self.startViewName = startViewName
        self.iconName = iconName

        logging.basicConfig(filename="gamelog.log", level=logging.DEBUG)
        logging.info("Started")
        if not pygame.font: logging.warn('Warning, fonts disabled')
        if not pygame.mixer: logging.warn('Warning, sound disabled')

        os.environ['SDL_VIDEO_CENTERED'] = '1'

        pygame.init()
        self.gameState = GameState()
        self.__setIcon()
        #self.screen = pygame.display.set_mode((1280,720), pygame.FULLSCREEN)
        self.screen = pygame.display.set_mode(self.gameState.size)
        #self.screen = self.set_screen_prop()
        self.viewController = None
        self.viewController = ViewController()
        self.configure()
Example #2
0
class TileGame(object):
    """The Main Game Class."""
    def __init__(self, gameName, startViewName, iconName = "icon"):
        """Initialization of the main class."""
        self.gamName = gameName
        self.startViewName = startViewName
        self.iconName = iconName

        logging.basicConfig(filename="gamelog.log", level=logging.DEBUG)
        logging.info("Started")
        if not pygame.font: logging.warn('Warning, fonts disabled')
        if not pygame.mixer: logging.warn('Warning, sound disabled')

        os.environ['SDL_VIDEO_CENTERED'] = '1'

        pygame.init()
        self.gameState = GameState()
        self.__setIcon()
        #self.screen = pygame.display.set_mode((1280,720), pygame.FULLSCREEN)
        self.screen = pygame.display.set_mode(self.gameState.size)
        #self.screen = self.set_screen_prop()
        self.viewController = None
        self.viewController = ViewController()
        self.configure()

    def set_screen_prop(self):
        """Only works on Windows."""
        user32 = ctypes.windll.user32
        screenSize =  user32.GetSystemMetrics(0), user32.GetSystemMetrics(1)
        print( screenSize)
        size = (screenSize)
        pygame.display.set_caption("Window")
        return pygame.display.set_mode((size) , pygame.FULLSCREEN)


    def __setIcon(self):
        """Set the window icon."""
        img = Utils.DirHelper.getImageResourceFile(self.iconName)
        pygame.display.set_caption("CoolVerine", img)
        pygame.display.set_icon(pygame.image.load(img))
        pass

    def configure(self):
        ServiceLocator.registerGlobalService(ServiceNames.Screen, self.screen)
        ServiceLocator.registerGlobalService(ServiceNames.PyGame, pygame)
        ServiceLocator.registerGlobalService(ServiceNames.ViewController, self.viewController)
        ServiceLocator.registerGlobalService(ServiceNames.Gamestate, self.gameState)
        ServiceLocator.registerGlobalService(ServiceNames.BeamPoints, BeamPointRegistry())
        pass

    def cleanup(self):
        pygame.quit()
        pass

    def run(self):
        """Run the game loop"""
        
        defaultStartView = "DemoStart"
        # Start-Screen
        viewName = self.parseViewNameFromCommandArgs()
        if viewName:
            self.viewController.changeView(viewName)
        else:
            self.viewController.changeView(defaultStartView)

        # Initialize the first save poin
        try:
            while not self.gameState.done:
                self.viewController.currentView.runView()
        except Exception as e:
            logging.error(e)
            self.gameState.done = True

    def parseViewNameFromCommandArgs(self):
        result = None
        opts, args = getopt.getopt(sys.argv[1:], "v:", ["view="])
        for o, a in opts:
            if o == "-v":
                result = a
            if o == "view=":
                result = a

        return result