def main(self, screen,bot_mode): clock = pygame.time.Clock() if bot_mode == "Neural": self.bot = Neural_Bot() else: self.bot = Bot() menu = kezmenu.KezMenu( ['Play!', lambda: self.game_create(menu) ], ['Quit', lambda: setattr(self, 'running', False)],event_gameover = GAMEOVER ) menu.position = (50, 50) menu.enableEffect('enlarge-font-on-focus', font=None, size=60, enlarge_factor=1.2, enlarge_time=0.3) menu.color = (255,255,255) menu.focus_color = (40, 200, 40) nightmare = construct_nightmare(screen.get_size()) highscoresurf = self.construct_highscoresurf() timepassed = clock.tick(30) / 1000. print("New Game") while self.running: events = pygame.event.get() for event in events: if event.type == pygame.QUIT: exit() menu.update(self.gameover,events, timepassed) timepassed = clock.tick(30) / 1000. #30 original if timepassed > 1: # A game has most likely been played 2e highscoresurf = self.construct_highscoresurf() screen.blit(nightmare, (0,0)) screen.blit(highscoresurf, highscoresurf.get_rect(right=WIDTH-50, bottom=HEIGHT-50)) menu.draw(screen) pygame.display.flip()
def main(self, screen): clock = pygame.time.Clock() menu = kezmenu.KezMenu( ['Play!', lambda: Game().main(screen)], ['Quit', lambda: setattr(self, 'running', False)], ) menu.position = (50, 50) menu.enableEffect('enlarge-font-on-focus', font=None, size=60, enlarge_factor=1.2, enlarge_time=0.3) menu.color = (255,255,255) menu.focus_color = (40, 200, 40) nightmare = construct_nightmare(screen.get_size()) highscoresurf = self.construct_highscoresurf() #Loads highscore onto menu timepassed = clock.tick(30) / 1000. while self.running: events = pygame.event.get() for event in events: if event.type == pygame.QUIT: exit() menu.update(events, timepassed) timepassed = clock.tick(30) / 1000. if timepassed > 1: # A game has most likely been played highscoresurf = self.construct_highscoresurf() screen.blit(nightmare, (0,0)) screen.blit(highscoresurf, highscoresurf.get_rect(right=WIDTH-50, bottom=HEIGHT-50)) menu.draw(screen) pygame.display.flip()
def main(self, screen): clock = pg.time.Clock() menu = kezmenu.KezMenu( ['Play Game (easy)', lambda: Game(screen.get_size(), difficulty=0).main(screen)], ['Play Game (medium)', lambda: Game(screen.get_size(), difficulty=1).main(screen)], ['Play Game (hard)', lambda: Game(screen.get_size(), difficulty=3).main(screen)], ['Quit', lambda: setattr(self, 'running', False)], ) menu.position = (50, 50) menu.enableEffect('enlarge-font-on-focus', font=None, size=60, enlarge_factor=1.2, enlarge_time=0.3) menu.color = (150,150,150) menu.focus_color = (40, 40, 240) highscoresurf = self.construct_highscoresurf() background = self.contruct_menu_background(screen.get_size()) while self.running: events = pg.event.get() timepassed = clock.tick(30) / 1000. if timepassed > 1: highscoresurf = self.construct_highscoresurf() for event in events: if event.type == pg.QUIT: exit() menu.update(events, timepassed) screen.blit(background, (0,0)) screen.blit(highscoresurf, highscoresurf.get_rect(right=WIDTH-50, bottom=HEIGHT-50)) menu.draw(screen) pg.display.flip()
def __init__(self): self.score = 0 self.loader = loader.Loader() self.gamemode = fsm([('Playing', 'GameOver', lambda x: x == 'GameOver'), ('MainMenu', 'Playing', lambda x: x == 'NewGame', lambda x, y: self.newgame()), ('MainMenu', 'Playing', lambda x: x == 'Resume'), ('Playing', 'MainMenu', lambda x: x == 'MainMenu'), ('GameOver', 'Playing', lambda x: x == 'GameOver')]) self.gamemode.start('MainMenu') self.menu = kezmenu.KezMenu(['SPACE ACE!', lambda: True], ['New Game', lambda: self.gamemode.event('NewGame')], ['Exit', lambda: pygame.event.post(pygame.event.Event(pygame.QUIT))]) self.menu.center = True # enable horizontal menu item centering self.menu.color = WHITE self.menu.focus_color = GREEN self.menu.options[0]['focus_color'] = RED self.menu.options[0]['color'] = RED self.menu.options[0]['font'] = pygame.font.Font("fonts/OverdriveInline.ttf", 75) self.menu._fixSize() self.menu.center_at(SCREEN_CENTER) # center entire menu to screen self.enemy_list = pygame.sprite.Group() self.player_list = pygame.sprite.Group() self.all_sprites_list = pygame.sprite.Group() self.events = None # Create the player self.player = sprites.Player(self.loader.PLAYER_IMAGE) self.all_sprites_list.add(self.player) self.player_list.add(self.player)
def main(self, screen): pygame.mixer.init() clock = pygame.time.Clock() background = load_image('menu_background.png') music = load_sound('music_credits.ogg') menu = kezmenu.KezMenu( ['Engage', lambda: Quantum().mainLoop(40)], ['Enlighten', lambda: Tutorial().mainLoop(40)], ['Archive', lambda: Highscore().mainLoop(40)], ['Collaborating Minds', lambda: Credits().mainLoop(40)], ['Abort', lambda: setattr(self, 'running', False)], ) menu.x = 10 menu.y = 10 menu.enableEffect('raise-col-padding-on-focus', enlarge_time=0.1) menu.color = (0, 0, 255) menu.focus_color = (174, 23, 92) menu.font = load_font('adelle.ttf', 20) music.play(-1) while self.running: menu.update(pygame.event.get(), clock.tick(30) / 1000.) screen.blit(background, (0, 0)) menu.draw(screen) pygame.display.flip()
def main(self, screen): clock = pygame.time.Clock() background = pygame.image.load('background.png') menu = kezmenu.KezMenu( ['Play!', lambda: Game().main(screen)], ['Quit', lambda: setattr(self, 'running', False)], ) menu.x = 200 menu.y = 100 menu.enableEffect('raise-col-padding-on-focus', enlarge_time=0.1) while self.running: menu.update(pygame.event.get(), clock.tick(30) / 1000.) screen.blit(background, (0, 0)) menu.draw(screen) pygame.display.flip()
def main(self, screen): clock = pygame.time.Clock() self.screen = screen menu = kezmenu.KezMenu( ['Play!', self.rungame], ['Quit', lambda: setattr(self, 'running', False)], ) menu.x = 400 menu.y = 300 menu.enableEffect('raise-col-padding-on-focus', enlarge_time=0.1) menu.font = pygame.font.Font(data_file('VT220-mod.ttf'), 50) menu.color = (200, 200, 200) while self.running: menu.update(pygame.event.get(), clock.tick(30) / 1000.) screen.fill((0, 0, 0)) menu.draw(screen) pygame.display.flip()
class Game(): menu = kezmenu.KezMenu() def __init__(self): self.score = 0 self.loader = loader.Loader() self.gamemode = fsm([('Playing', 'GameOver', lambda x: x == 'GameOver'), ('MainMenu', 'Playing', lambda x: x == 'NewGame', lambda x, y: self.newgame()), ('MainMenu', 'Playing', lambda x: x == 'Resume'), ('Playing', 'MainMenu', lambda x: x == 'MainMenu'), ('GameOver', 'Playing', lambda x: x == 'GameOver')]) self.gamemode.start('MainMenu') self.menu = kezmenu.KezMenu(['SPACE ACE!', lambda: True], ['New Game', lambda: self.gamemode.event('NewGame')], ['Exit', lambda: pygame.event.post(pygame.event.Event(pygame.QUIT))]) self.menu.center = True # enable horizontal menu item centering self.menu.color = WHITE self.menu.focus_color = GREEN self.menu.options[0]['focus_color'] = RED self.menu.options[0]['color'] = RED self.menu.options[0]['font'] = pygame.font.Font("fonts/OverdriveInline.ttf", 75) self.menu._fixSize() self.menu.center_at(SCREEN_CENTER) # center entire menu to screen self.enemy_list = pygame.sprite.Group() self.player_list = pygame.sprite.Group() self.all_sprites_list = pygame.sprite.Group() self.events = None # Create the player self.player = sprites.Player(self.loader.PLAYER_IMAGE) self.all_sprites_list.add(self.player) self.player_list.add(self.player) def newgame(self): self.loader.SOUND_START.play() self.asteroid_field() self.menu.insert(2, ['Resume Game', lambda: self.gamemode.event('Resume')]) def asteroid_field(self): for i in range(10): asteroid = sprites.Asteroid(4, 100, self.loader.ASTEROID_ANIMATION) asteroid.rect.x = random.randrange(100, SCREEN_WIDTH-100) asteroid.rect.y = random.randrange(-300, SCREEN_HEIGHT//3) self.enemy_list.add(asteroid) self.all_sprites_list.add(asteroid) def print_hud(self,screen): font = pygame.font.Font(None, 36) text = font.render("Score: {:07}".format(self.score), 1, WHITE) textpos = text.get_rect(right=screen.get_width()-20, y=10) screen.blit(text, textpos) for life in range(self.player.life): image = pygame.transform.scale(self.player.image, (self.player.rect.width//3, self.player.rect.height//3)) rect = image.get_rect(y=10, x=15) rect.x += rect.width*life screen.blit(image, rect) def quit(self): """Run Stuff needed before exit""" print("We Quit!") def process_events(self): """ Process all of the events. Return a "True" if we need to close the window. """ self.events = pygame.event.get() for e in self.events: if e.type == pygame.QUIT: self.quit() return True elif e.type == pygame.KEYDOWN: if e.key == pygame.K_q: pygame.event.post(pygame.event.Event(pygame.QUIT)) elif self.gamemode.currentState == 'Playing': if e.key == pygame.K_ESCAPE: self.gamemode.event('MainMenu') return False # not done def run_logic(self): if self.gamemode.currentState == 'MainMenu': self.menu.update(self.events) elif self.gamemode.currentState == 'Playing': self.all_sprites_list.update(self.events, self) def display_frame(self, screen): screen.fill(BLACK) starfield.move_and_draw_stars(screen) if self.gamemode.currentState == 'MainMenu': pygame.mouse.set_visible(True) self.menu.draw(screen) elif self.gamemode.currentState == 'Playing': self.enemy_list.draw(screen) self.player.bullet_list.draw(screen) self.player_list.draw(screen) self.print_hud(screen) pygame.display.update()