Esempio n. 1
0
    def go_to(self, sNum, **specArgs):

        # create the scene the first time it is visited
        if self.scenes[sNum] is None:
            if sNum is scene.Scenes.MENU:
                self.scenes[sNum] = menuscene.MenuScene()
            elif sNum is scene.Scenes.INTERACTIVE:
                self.scenes[sNum] = intscene.InteractiveScene()
            elif sNum is scene.Scenes.BATTLE:
                self.scenes[sNum] = battlescene.BattleScene(
                    specArgs['c1'], specArgs['c2'])
            elif sNum is scene.Scenes.CODING:
                self.scenes[sNum] = codingscene.CodingScene(specArgs['plyr'])
            if (self.activity != None):
                self.toolbars[sNum] = self.scenes[sNum].makeToolbar(
                    self.activity)
        else:  #scene has been created, but certain scenes still need special args.
            if sNum is scene.Scenes.BATTLE:
                self.scenes[sNum].sendToBattle(specArgs['c1'], specArgs['c2'])
            if sNum is scene.Scenes.INTERACTIVE:
                try:
                    self.scenes[sNum].destroyBot(specArgs['deadBot'])
                except:
                    pass

        self.scenes[sNum].manager = self
        self.scene = self.scenes[sNum]
        self.scene.enter()  # Re-initialize a Scene if it needs it
        if (self.activity != None):
            for tBar in self.toolbars:
                if (tBar != None): tBar.hide()
            self.toolbars[sNum].show()
            self.activity.set_toolbar_box(self.toolbars[sNum])
Esempio n. 2
0
    def update(self, dt):
        self.timer += dt
        t = self.timer / 2
        for i,te in enumerate(self.lines):
            z = min(max(t - i, 0), 1)
            te.color = [game.FGCOLOR[c] * z + game.BGCOLOR[c] * (1-z) for c in range(3)]
            te.update()
            te.set_pos(te.pos[0], te.pos[1] - dt * 5)

        if self.timer > 45:
            self.game.scene = menuscene.MenuScene(self.game)
            self.game.scene.start()
            
            
Esempio n. 3
0
    def take_input(self, inp, event):
        if inp == "menu":
            self.game.scene = menuscene.MenuScene(self.game)
            self.game.scene.start()
        if self.tut:
            if inp == "confirm" or inp == "action" or inp == "click":
                if self.tut.done:
                    #self.stage += 1
                    if self.stage <= len(tut_stage_times):
                        self.time = tut_stage_times[self.stage]
                else:
                    self.tutorial_speed = 1
                    self.tut.speed = 10
                print(self.stage, self.time)

        return super().take_input(inp, event)
Esempio n. 4
0
    def __init__(self, save):
        Game.inst = self
        self.debug_console = False
        global DEV
        #pygame.display.set_icon(pygame.image.load(resource_path("assets/icon_2_256.png")))
        pygame.mixer.pre_init(buffer=256)
        pygame.init()
        self.save = save
        self.achievements = achievements.Achievements(self.save)
        self.intel = IntelManager(self.save)

        resolution = self.save.get_setting("resolution")
        if resolution == None:
            resolution = (1200,800)
            self.save.set_setting("resolution", resolution)
            self.save.save()
        self.set_resolution(V2(*resolution), self.save.get_setting("fullscreen"))
        pygame.display.set_caption("Hostile Quadrant")
        sound.init()
        text.preload()
        self.joysticks = [pygame.joystick.Joystick(x) for x in range(pygame.joystick.get_count())]
        self.last_joy_axes = None
        try:
            self.run_info = self.save.get_run_state()
            if not DEV and self.run_info.anticheat_level_started:
                self.run_info.no_score = True
                self.save.set_run_state(self.run_info)
                self.save.save()
        except Exception as e:
            print(e)
            self.run_info = run.RunInfo()
        
        self.input_mode = self.INPUT_MOUSE
        self.player_inputs = []

        self.threads = {}
        self.thread_return_values = {}
        self.thread_index = 0

        if len(sys.argv) > 1:
            DEV = True            
            if sys.argv[1] == "draw":
                self.scene = buildingcreatorscene.BuildingCreatorScene(self)
            elif sys.argv[1] == "editor":
                self.scene = leveleditorscene.LevelEditorScene(self)
            elif sys.argv[1] == "star":
                self.run_info = run.RunInfo()
                self.scene = starmapscene.StarMapScene(self)
            elif sys.argv[1] == "upgrades":
                self.scene = allupgradesscene.AllUpgradesScene(self)
            elif sys.argv[1] == "tutorial":
                self.scene = tutorial.tutorial1scene.Tutorial1Scene(self)
            elif sys.argv[1] == "game":
                self.scene = levelscene.LevelScene(self, "cross", "alien2", 6, 6, "Testing", "This is a test string for the description")
            elif sys.argv[1] == "boss":
                self.scene = levelscene.LevelScene(self, "boss2", "boss", 9, 9, "Boss", "It's the boss")
            elif sys.argv[1] == "planet":
                self.scene = planetgenscene.PlanetGenScene(self)
            elif sys.argv[1] == "new":
                self.scene = newgamescene.NewGameScene(self)
            elif sys.argv[1] == "perf":
                self.scene = levelscene.LevelScene(self, "choke", "alien3", 3, 3, "", "", options='performance')
            elif sys.argv[1] == "flowfield":
                self.scene = levelscene.LevelScene(self, "cross", "alien3", 1, 1, "", "", options='flowfield')
            elif sys.argv[1] == "multiplayer":
                # self.player_inputs = [
                #     playerinput.Player(0, playerinput.Player.INPUT_MOUSE),
                #     playerinput.Player(1, playerinput.Player.INPUT_JOYSTICK, 0),
                #     playerinput.Player(2, playerinput.Player.INPUT_JOYSTICK, 1),
                #     playerinput.Player(3, playerinput.Player.INPUT_JOYSTICK, 2)
                # ]
                # self.input_mode = self.INPUT_MULTIPLAYER
                # self.scene = multiplayerscene.MultiplayerScene(self, 4)
                self.scene = multiplayermenu.MultiplayerMenu(self)
            else:
                self.scene = menuscene.MenuScene(self)
        else:
            self.scene = menuscene.MenuScene(self)
            #self.scene = introscene.IntroScene(self)
        self.playing_level_index = None

        self.game_speed_input = 0
        self.last_joystick_pos = defaultdict(lambda:self.game_resolution / 2)

        self.menu_bg_cache_obj = None

        self.first_load = True
        self.frame_time = 0
        self.frame_times = []
        self.scale_mode = "xbr"
        self.fps_limited_pause = False
        self._profiling = False
        self._profile_start_time = 0
        self._profiler = None
Esempio n. 5
0
 def go_to_menu(self):
     self.scene = menuscene.MenuScene(self)
     self.scene.start()
Esempio n. 6
0
 def on_back(self):
     if self.loading:
         return
     self.game.scene = menuscene.MenuScene(self.game)
     self.game.scene.start()
Esempio n. 7
0
 def take_input(self, inp, event):
     if inp == "action":
         self.game.scene = menuscene.MenuScene(self.game)
         self.game.scene.start()