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])
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()
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)
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
def go_to_menu(self): self.scene = menuscene.MenuScene(self) self.scene.start()
def on_back(self): if self.loading: return self.game.scene = menuscene.MenuScene(self.game) self.game.scene.start()
def take_input(self, inp, event): if inp == "action": self.game.scene = menuscene.MenuScene(self.game) self.game.scene.start()