def __init__(self, parent): self.parent = parent globalvars.asdf = 0 ##some key vars, the works self.lagcount = 0 #a little hack so that the background works nicer self.background = globalvars.screen #make the rectlist to handle dirty updating self.updaterects = [] #background object self.bgstars = BackgroundManager() ##make the lists to handle various sprites self.list_enemys = EnemyManager() self.player_list = pygame.sprite.RenderUpdates() self.list_allie_shots = pygame.sprite.OrderedUpdates() self.enemy_shots = pygame.sprite.RenderUpdates() self.token_list = pygame.sprite.RenderUpdates() ##make a new stage object self.stage = Stage(self, self.list_enemys, self.player_list, self.enemy_shots, self.list_allie_shots) #self.setup_events() self.new_display()
def runGame(): # Initialize game and create a window pg.init() # create a new object using the settings class setting = Settings() # creaete a new object from pygame display screen = pg.display.set_mode((setting.screenWidth, setting.screenHeight)) # intro intro.introimages() # set window caption using settings obj pg.display.set_caption(setting.windowCaption) bMenu = ButtonMenu(screen) bMenu.addButton("play", "PLAY") bMenu.addButton("menu", "MENU") bMenu.addButton("twoPlay", "2PVS") bMenu.addButton("settings", "SETTINGS") bMenu.addButton("invert", "INVERT") bMenu.addButton("about", "ABOUT") bMenu.addButton("quit", "QUIT") bMenu.addButton("grey", "GREY") bMenu.addButton("red", "RED") bMenu.addButton("blue", "BLUE") bMenu.addButton("retry", "RETRY") bMenu.addButton("hard", "HARD") bMenu.addButton("normal", "NORMAL") mainMenuButtons = ["play", "about", "settings", "quit"] # delete "twoPlay" playMenuButtons = ["grey", "red", "blue", "menu", "quit"] levelMenuButtons = ["hard", "normal", "quit"] mainGameButtons = ["play", "menu", "quit"] aboutButtons = ["menu", "quit"] settingsMenuButtons = ["menu", "invert", "quit"] bgManager = BackgroundManager(screen) bgManager.setFillColor((0, 0, 0)) bgManager.addBackground( "universe_1", "gfx/backgrounds/stars_back.png", 0, 1) bgManager.addBackground( "universe_1", "gfx/backgrounds/stars_front.png", 0, 1.5) bgManager.selectBackground("universe_1") # Create an instance to stor game stats stats = GameStats(setting) sb = Scoreboard(setting, screen, stats) # Make a ship ship = Ship(setting, screen) # Ships for two player ship1 = Ship(setting, screen) ship2 = Ship(setting, screen) # make a group of items to store items = Group() # make a group of bullets to store bullets = Group() charged_bullets = Group() eBullets = Group() setting.explosions = Explosions() # Make an alien aliens = Group() gf.createFleet(setting, stats, screen, ship, aliens) pg.display.set_icon(pg.transform.scale(ship.image, (32, 32))) bgImage = pg.image.load('gfx/title_c.png') bgImage = pg.transform.scale( bgImage, (setting.screenWidth, setting.screenHeight)) bgImageRect = bgImage.get_rect() aboutImage = pg.image.load('gfx/About_modify2.png') aboutImage = pg.transform.scale( aboutImage, (setting.screenWidth, setting.screenHeight)) aboutImageRect = aboutImage.get_rect() # plays bgm pg.mixer.music.load('sound_bgms/galtron.mp3') pg.mixer.music.set_volume(0.25) pg.mixer.music.play(-1) rungame = True sounds.stage_clear.play() # Set the two while loops to start mainMenu first while rungame: # Set to true to run main game loop bMenu.setMenuButtons(mainMenuButtons) while stats.mainMenu: if not stats.gameActive and stats.paused: setting.initDynamicSettings() stats.resetStats() ##stats.gameActive = True # Reset the alien and the bullets aliens.empty() bullets.empty() eBullets.empty() # Create a new fleet and center the ship gf.createFleet(setting, stats, screen, ship, aliens) ship.centerShip() mm.checkEvents(setting, screen, stats, sb, bMenu, ship, aliens, bullets, eBullets) mm.drawMenu(setting, screen, sb, bMenu, bgImage, bgImageRect) bMenu.setMenuButtons(levelMenuButtons) while stats.levelMenu: lm.checkEvents(setting, screen, stats, sb, bMenu, ship, aliens, bullets, eBullets) lm.drawMenu(setting, screen, sb, bMenu, bgImage, bgImageRect) bMenu.setMenuButtons(playMenuButtons) while stats.playMenu: pm.checkEvents(setting, screen, stats, sb, bMenu, ship, aliens, bullets, eBullets) pm.drawMenu(setting, screen, sb, bMenu) bMenu.setMenuButtons(mainGameButtons) while stats.mainGame: # Game functions gf.checkEvents(setting, screen, stats, sb, bMenu, ship, aliens, bullets, eBullets, charged_bullets) # Check for events # Reset Game if gf.reset == 1: gf.reset = 0 pg.register_quit(runGame()) if stats.gameActive: gf.updateAliens(setting, stats, sb, screen, ship, aliens, bullets, eBullets) # Update aliens gf.updateBullets(setting, screen, stats, sb, ship, aliens, bullets, eBullets, charged_bullets, items) # Update collisions gf.updateItems(setting, screen, stats, sb, ship, aliens, bullets, eBullets, items) ship.update(bullets, aliens) # update the ship # Update the screen gf.updateScreen(setting, screen, stats, sb, ship, aliens, bullets, eBullets, charged_bullets, bMenu, bgManager, items) bMenu.setMenuButtons(aboutButtons) bMenu.setPos(None, 500) while stats.mainAbout: About.checkEvents(setting, screen, stats, sb, bMenu, ship, aliens, bullets, eBullets) About.drawMenu(setting, screen, sb, bMenu, aboutImage, aboutImageRect) while stats.twoPlayer: tp.checkEvents(setting, screen, stats, sb, bMenu, bullets, aliens, eBullets, ship1, ship2) if stats.gameActive: ship1.update(bullets, aliens) ship2.update(bullets, aliens) tp.updateBullets(setting, screen, stats, sb, ship1, ship2, aliens, bullets, eBullets, items) tp.updateScreen(setting, screen, stats, sb, ship1, ship2, aliens, bullets, eBullets, bMenu, items) bMenu.setMenuButtons(settingsMenuButtons) while stats.settingsMenu: sm.checkEvents1(setting, screen, stats, sb, bMenu, ship, aliens, bullets, eBullets) sm.drawMenu(setting, screen, sb, bMenu) while stats.mainGame: if rungame == True: print("test")
def __init__(self, app, screen): # tock started out random, but now is an important variable. # It is a frames count, used for periodic updates on certain # frames. self.p_max_health = 5 self.won = False self.won_msg = "WINNER!" self.particle_ban = False self.wait_stop_count = -1 # -1 means do not count self.wait_stop_max = 120 # wait this many frames after decay # before showing menu self.tock = 0 self.stage_e_bullet_odds = 15 self.mouse_rect = None self.temp_rect = None self.app = app self.screen = screen self.app.music_name = "intro.ogg" # self.app.continue_music() if self.app.settings['music']: # self.app.music_loaded = self.app.music_name # pygame.mixer.music.load(self.app.resource_find( # self.music_name)) # pygame.mixer.music.play() # plays once PLUS repeats param pass left_border = 50 right_border = 50 w, h = screen.get_size() self.world_rect = pygame.Rect(left_border, 0, w-right_border-left_border, h) self.bg = BackgroundManager(self.world_rect) # Yay spritegroups! They make the world go round, and iterate. # Basically each visible game object resides in its own special # spritegroup & then all one needs to do is go through these & # call functions & stuff. # It makes sense in here *points to brain* self.p_swarm = Swarm(self.world_rect) self.particles = Swarm(self.world_rect) self.explosion_images = self.app.load_seq('ex-medium') self.shield_hit_images = self.app.load_seq('shield_hit-tiny') self.damage_images = self.app.load_seq('ex-tiny') # Load player sprite as image list. self.p_unit_images = self.app.load_seq('pship') # self.p_unit_images = [] # self.p_unit_images.append(self.load_file('pship.png')) # self.p_unit_images.append(self.load_file('pship1.png')) # self.p_unit_images.append(self.load_file('pship2.png')) # self.p_unit_images.append(self.load_file('pship3.png')) # Load enemy ship image. self.e_ship_image = self.load_file('eship.png') if self.app.settings['sounds']: self.p_shoot_sound = self.app.load_file('p-weapon0.wav', file_type='sound') self.p_shoot_sound.set_volume(.3) self.e_ex_sound = self.app.load_file('e-ex.wav', file_type='sound') self.p_ex_sound = self.app.load_file('p-ex.wav', file_type='sound') self.e_damage_sound = self.app.load_file('e-damage.wav', file_type='sound') self.e_shield_sound = self.app.load_file('e-shield.wav', file_type='sound') self.p_shield_sound = self.app.load_file('p-shield.wav', file_type='sound') self.p_damage_sound = self.app.load_file('p-damage.wav', file_type='sound') print("loaded sounds...") self.menus = None self.tock = 0 self.lagcount = 0 self.leftkeydown = 0 self.rightkeydown = 0 # self.enemylist = [] # list of dirty rects self.swarm = Swarm(self.world_rect, shoot_odds=self.stage_e_bullet_odds) self.stage = Stage(self.swarm, self.p_swarm) self.p_shot_image = self.load_file('p-laser.png') self.e_shot_image = self.load_file('e-laser.png') self.p_bullet_swarm = Swarm(self.world_rect) self.e_bullet_swarm = Swarm(self.world_rect) # self.bullet_width = 10 self.hud_rect = pygame.Rect(0, 0, 5, 150) self.hud = Hud() self.hud.generate_blip('player.score', 100, fg_color=(255,243,207), text_color=(192,180,180), caption="SCORE") self.hud.generate_blip('player.health', self.p_max_health, fg_color=(0,255,42), text_color=(192,180,180), caption="SHIELD") self.statcounter = self.hud.get_blip('player.score')
speedButtons = ["fast","middle","slow"] <<<<<<< HEAD <<<<<<< HEAD >>>>>>> 78ecfa2143bfd3ecfc66c1265fc3edf149138738 ======= settingsMenuButtons = ["menu", "invert","speed setting","quit"] speedButtons = ["fast","middle","slow","menu"] >>>>>>> f85a50e374a3ee9445353e8a5660e311f34dfb26 ======= settingsMenuButtons = ["menu", "invert","speed setting","quit"] speedButtons = ["fast","middle","slow","menu"] >>>>>>> 1846737c17430f275f0bb7158e3868892f9209d5 bgManager = BackgroundManager(screen) bgManager.setFillColor((0, 0, 0)) bgManager.addBackground("universe_1", "gfx/backgrounds/stars_back.png", 0, 1) bgManager.addBackground("universe_1", "gfx/backgrounds/stars_front.png", 0, 1.5) bgManager.selectBackground("universe_1") # Create an instance to stor game stats stats = GameStats(setting) sb = Scoreboard(setting, screen, stats) # Make a ship ship = Ship(setting, screen) # Ships for two player ship1 = Ship(setting, screen) ship2 = Ship(setting, screen)