def _create_space(self): """Create the space with stars.""" # The star need to be stole in random. stars = Stars(self) numbers_stars = 20 for star_number in range(numbers_stars): stars = Stars(self) self.stars.add(stars)
def __init__(self): """Creates all game objects needed, loads resources, initializes pygame library and sound mixer, sets display mode, etc.""" self.state = STATE_TITLE pygame.mixer.pre_init(buffer=SOUND_BUFFER) pygame.init() self.clock = Clock() self.scr = pygame.display.set_mode(SCREEN_SIZE, VID_MODE_FLAGS) pygame.display.set_caption(WINDOW_CAPTION) pygame.mouse.set_visible(False) LoadingScreen(self.scr).draw() sound_box.init() self.level = GameLevel() self.stats = GameStats(self.scr) self.view_pt = ViewPoint(self.scr) self.stars = Stars(self.scr, self.view_pt) self.track = Track(self.scr, self.view_pt) self.explosions = Explosions(self.scr, self.view_pt) self.ship = Ship(self.scr, self.view_pt, self.explosions) self.asteroids = Asteroids(self.scr, self.view_pt, self.explosions, self.track) self.title_screen = TitleScreen(self.scr, self.view_pt, self.stars) self.level_start_screen = LevelStartScreen(self.scr) self.level_complete_effect = LevelCompleteEffect(self.scr) self.game_over_effect = GameOverEffect(self.scr) self.pause_screen = PauseScreen(self.scr) self.ending_screen = EndingScreen(self.scr) self._init_title()
def run_game(): pygame.init() ai_settings = Settings() screen = pygame.display.set_mode( (ai_settings.screen_width, ai_settings.screen_height)) pygame.display.set_caption("Pick the stars") people = People(ai_settings, screen) stars = Stars(ai_settings, screen) alien = Alien(ai_settings, screen) bullets = Group() stats = GameStats(ai_settings) sb = Scoreboard(ai_settings, screen, stats) play_button = Button(ai_settings, screen, "Play") while True: gf.check_events(ai_settings, stats, sb, people, alien, bullets, play_button) bullets.update() for bullet in bullets.copy(): if bullet.rect.bottom >= ai_settings.screen_height: bullets.remove(bullet) if stats.game_active: people.update() gf.update_alien(alien) gf.update_stars(ai_settings, stats, sb, people, stars) if alien.rect.x % 120 == 0: gf.update_bullet(ai_settings, stats, screen, people, alien, bullets) gf.update_screen(ai_settings, stats, sb, screen, people, stars, alien, bullets, play_button)
def _create_stars(self, star_number, star_row_number): star = Stars(self) random_range = randint(-10, 10) random_number = randint(1, 10) # star_width, star_height = star.rect.size star.rect.x = random_range + random_number * star.rect.width * star_number star.rect.y = random_range + random_number * star.rect.height * star_row_number self.stars.add(star)
def __init__(self, size): self.size = size pygame.font.init() self.score = 0 self.star_background = Stars(self.size) self.font = pygame.font.Font("res/font.ttf", 28) self.screen = pygame.display.set_mode(size) if not self.gameover: self.new_game() self.loop()
def enter(): global background background = BackGround() global stars stars = Stars(400, get_canvas_height() / 2) global game_logo game_logo = GameLogo() global font font = load_font('Font/LCD_Solid.ttf', 24) global press_sound press_sound = load_wav('Sound/Select.wav') press_sound.set_volume(64)
def _create_starry_sky(self): """Instantiate a sky full of stars for the game's background.""" # Make a star. star = Stars(self) star_width, star_height = star.rect.size available_space_stars_x = self.settings.screen_width - (star_width) number_stars_x = available_space_stars_x // (star_width) # Determine the number of rows of stars that fit on the screen. available_space_stars_y = (self.settings.screen_height - (star_height)) star_number_rows = available_space_stars_y // (star_height) # Create the full sky of stars. for star_row_number in range(star_number_rows): for star_number in range(number_stars_x): self._create_stars(star_number, star_row_number)
def enter(): background = BackGround() gameworld.add_object(background, 0) ui = UI_Manager() gameworld.register_ui(ui) global stars stars = Stars(300, get_canvas_height() / 2) gameworld.add_object(stars, 0) global font font = load_font('Font/LCD_Solid.ttf', 24) global sound sound = load_wav("Sound/StageEnter.wav") sound.play()
def enter(): global sound sound = load_music('Sound/Credits.wav') sound.repeat_play() global new_records new_records = [] global score ui = gameworld.get_ui() score = ui.get_score() save_score() get_current_rank() gameworld.clear() global background background = BackGround() global stars stars = Stars(400, get_canvas_height() / 2)
def __init__ (self, mainMenuSound, soundMouse, soundSpace, soundGun, soundClick, takeSomething, soundCoin, soundSpaceShip): self.spaceShip = SpaceShip(width/2, height/2+150, 150, 150, 5, soundGun, takeSomething, soundCoin) self.enemy = Enemy(random(0+75/2, width-75/2), -300, 75, 75, 3) self.spaceShip.setEnemy(self.enemy) self.objects = Objects(soundGun) self.spaceShip.setSecondWeapon(self.objects.secondWeapon) self.spaceShip.setSecondWeaponTimer(self.objects.secondWeaponTimer) self.dropedObjects = DropedObjects(random(0+25, width-25), -2400, 50, 50, 2, random(0+25, width-25)) self.spaceShip.setDropedSecondWeapon(self.dropedObjects.dropedSecondWeapon) self.stars = Stars() self.gameState = False self.buttonToStartGame = StartGame(width/2, height/2, 100, 50) self.mainMenuSound = mainMenuSound self.mainMenuSound.loop() self.soundMouse = soundMouse self.soundSpace = soundSpace self.soundClick = soundClick self.soundSpaceShip = soundSpaceShip
def run_game(): pygame.init() numberOfLives = 3 clock = pygame.time.Clock() ai_settings = Settings() screen_height = ai_settings.screen_height screen = pygame.display.set_mode( (ai_settings.screen_width, ai_settings.screen_height), pygame.FULLSCREEN | pygame.DOUBLEBUF | pygame.HWSURFACE) screen.fill(ai_settings.bg_color, (0, 0, ai_settings.screen_width, ai_settings.screen_height)) pygame.display.set_caption("Alien Invasion") ship = Ship(ai_settings, screen) stars = Stars(ai_settings, screen) bullet = Bullet(ai_settings, screen, ship) starIndex = 0 star_list = [Stars(ai_settings, screen) for i in range(200)] alienFrequency = 0 alienIndex = 0 aliens = [Alien(ai_settings, screen) for i in range(200)] bullets = [bullet] reload = Timer(ai_settings, screen) alien_odds = ai_settings.alien_frequency explosions = [] refreshFPS = 10 avgFPS = 0 delay = 0 pygame.mixer.music.load('Assets/Sounds/explosion.mp3') myfont = pygame.font.SysFont("monospace", 10) livesfont = pygame.font.SysFont("monospace", 30) gameOver = pygame.font.SysFont("monospace", 60) UI_color = (100, 100, 110) pause = 0 paused = False gameOverMessage = "" while True: gf.update_screen(ai_settings, screen, ship, star_list, bullets, aliens, explosions, reload, delay) alienFrequency = int(pygame.time.get_ticks() / 1000) clock.tick() delay = clock.get_time() gf.check_events(ai_settings, screen, ship, bullets, reload) if pause <= 0 and paused: paused = False numberOfLives = 3 ship.reset() gameOverMessage = "" screen.fill(ai_settings.bg_color, (700, 450, 600, 200)) alienFrequency = 0 else: pause -= delay if paused == False: oddsStar = randint(0, 10) oddsAlien = randint(0, alienFrequency) for alien in aliens: if pygame.sprite.collide_rect(ship, alien): alien.erase() alien.reset() pygame.mixer.music.play(0) explosions.append(Explosion(ship)) numberOfLives -= 1 if numberOfLives == 0: ship.erase() ship.centerX[0] = -10000 gameOverMessage = "GAME OVER!!!" for alien in aliens: explosions.append(Explosion(alien)) alien.erase() alien.reset() pause = 3000 paused = True for alien in aliens: for bullet in bullets: if alien.rect.collidepoint(bullet.rect.x, bullet.rect.y): pygame.mixer.music.play(0) explosions.append(Explosion(alien)) bullets.remove(bullet) alien.erase() alien.reset() reload.update(delay) if oddsStar == 10: star_list[starIndex % 200].activate() starIndex += 1 if oddsAlien >= 100: aliens[alienIndex % 200].activate() alienIndex += 1 if bullets: if bullets[0].y < 0: bullets[0].erase() bullets.pop(0) screen.fill(UI_color, (0, 0, 100, 100)) label = myfont.render(str(int(clock.get_fps())), 1, (255, 255, 0)) lives = myfont.render("LIVES REMAINING :", 1, (255, 255, 0)) remaining = livesfont.render(str(numberOfLives), 1, (255, 255, 0)) gg = gameOver.render(gameOverMessage, 1, (255, 255, 0)) screen.blit(label, (0, 0)) screen.blit(lives, (0, 30)) screen.blit(remaining, (20, 45)) screen.blit(gg, (700, 450)) pygame.display.flip()
if event.key == K_ESCAPE: self.gameEnd = True def gameLoop(self): self.getScreen() contador = 0 while self.gameEnd == False: if contador > 20: self.controllerAnimation = True if contador >= 20 and contador < 40: self.controllerAnimation = False if contador > 40: contador = 0 contador += 1 print(contador) self.getClock() self.input(player) self.update() self.render(stars, player) gamePlay = GamePlay() gamePlay.makeMatrix() player = Player(gamePlay.getScreenSize(), gamePlay.getScreenSize()[0] * 0.5, gamePlay.getScreenSize()[1] * 0.95, 100) stars = Stars(400, gamePlay.getScreenSize()) gamePlay.gameLoop()