def main(window): sys.excepthook = onexception logging.basicConfig(filename='app.log', format='%(name)s - %(levelname)s - %(message)s', level=logging.INFO) renderer = Renderer() gameloop = GameLoop(renderer) gameloop.start()
def build_essentials(self): """A method which resets important objects for loading a different level """ self.load_level_list() self.load_level() self.gui = Gui((640, 360)) self.add_healthbars() self.renderer = Renderer(self.display, self.level, self.gui) self.game_loop = GameLoop(self.level, self.renderer, self.event_queue, self.clock, CELL_SIZE, self.gui, self.mixer)
def loop_switch(self, next_loop: str): """ this function chooses the next current_loop based on it's input Args: next_loop: string that tells the mainloop the next subloop """ if next_loop == "gameloop": self.current_loop = GameLoop() elif next_loop == "startloop": self.current_loop = StartLoop() elif next_loop == "scoreloop": self.current_loop = ScoreLoop() elif next_loop == "exit": self.running = False
def play(self): pygame.init() display = pygame.display.set_mode((800, 700)) display.fill((230, 210, 170)) pygame.display.set_caption("TETRIS") gameloop = GameLoop(display) font = pygame.font.SysFont("comicsans", 60, bold=True) title = font.render("TETRIS", 1, (210, 150, 75)) font = pygame.font.SysFont("comicsans", 30) next_piece = font.render("NEXT PIECE:", 1, (210, 150, 75)) high_score = font.render("HIGH SCORE:", 1, (210, 150, 75)) font = pygame.font.SysFont("comicsans", 40) score = font.render(gameloop.hscore, 1, (210, 150, 75)) display.blit(title, (250, 50)) display.blit(next_piece, (600, 100)) display.blit(high_score, (10, 100)) display.blit(score, (10, 150)) gameloop.handle_events()
def setUp(self): self.gameloop = GameLoop()
def create_gameloop(): player = Player(-2019) levels = (create_level_0(), create_level_1(), create_level_2(), create_level_3()) return GameLoop(player, levels, 1, create_tut_lev(), create_won_lev(), create_lost_lev())
'''Reaction/Memory Light Game main module There are two main parts to the program: The game loop, found in the gameloop module, and the webapp code, using the Flask framework, found in this module. ''' from queue import Empty, Queue from flask import Flask, render_template from flask_json import FlaskJSON, as_json from gameloop import GameLoop from player import Player events_queue = Queue() game = GameLoop(( Player('One', buttons=(24, 18), led=(17, 27, 22)), Player('Two', buttons=(21, 20), led=(2, 3, 4)), Player('Three', buttons=(16, 12), led=(26, 19, 13)), ), events_queue) app = Flask(__name__) json = FlaskJSON(app) def names_and_scores(): sorted_players = list(game.players) sorted_players.sort(key=lambda player: player.wins, reverse=True) return [[ p.name, p.wins, p.fastest_ms() or '', p.mean_ms() or '', p.slowest_ms() or '' ] for p in sorted_players]
def Menu(score_list): pygame.init() pygame.mixer.init() menu = pygame.display.set_mode((WIDTH, HEIGHT)) pygame.display.set_caption("Carrot Time") pygame.event.set_blocked(pygame.MOUSEMOTION) menu_image = pygame.image.load(os.path.join(IMG_FOLDER, "menu.png")).convert() menu_image = pygame.transform.scale(menu_image, (WIDTH, HEIGHT)) click_sound = pygame.mixer.Sound(os.path.join(SOUND_FOLDER, "click.wav")) click_sound.set_volume(1) big_font = pygame.font.SysFont("Arial", 30, False, False) mini_font = pygame.font.SysFont("Arial", 15, False, False) menu.fill(WHITE) menu.blit(menu_image, (0, 0)) # create three buttons Button(menu, "Start", YELLOW, 50, 310, 100, 50) Button(menu, "High Scores", YELLOW, 50, 370, 100, 50) Button(menu, "Quit", RED, 50, 430, 100, 50) intro = True while intro: for event in pygame.event.get(): if event.type == pygame.QUIT: intro = False pygame.quit() if event.type == pygame.MOUSEBUTTONDOWN: cur = pygame.mouse.get_pos() # button 1 if 50 < cur[0] < 150 and 310 < cur[1] < 360: click_sound.play() Button(menu, "Start", ORANGE, 50, 310, 100, 50) pygame.display.update() GameLoop(score_list) # button 2 if 50 < cur[0] < 150 and 370 < cur[1] < 420: click_sound.play() Button(menu, "High Scores", ORANGE, 50, 370, 100, 50) pygame.display.update() # get the first 10 high scores leng = len(score_list) if leng < 10: while len(score_list) < 10: score_list.append(0) for s in score_list: print(s) if leng >= 10: for i in range(10): print(score_list[i]) # display 10 high scores e = True while e: pygame.draw.rect(menu, ORANGE, (0, 200, WIDTH, 200)) title = big_font.render("High Scores", False, BLACK) rect = title.get_rect() rect.center = (WIDTH / 2 - 10, 220) menu.blit(title, rect) text = mini_font.render("Back? Y/N", False, BLACK) rect = text.get_rect() rect.center = (WIDTH / 2 - 10, 380) menu.blit(text, rect) t1 = mini_font.render(str(score_list[0]), False, BLACK) rect = t1.get_rect() rect.center = (200, 250) menu.blit(t1, rect) t2 = mini_font.render(str(score_list[1]), False, BLACK) rect = t2.get_rect() rect.center = (200, 270) menu.blit(t2, rect) t3 = mini_font.render(str(score_list[2]), False, BLACK) rect = t3.get_rect() rect.center = (200, 290) menu.blit(t3, rect) t4 = mini_font.render(str(score_list[3]), False, BLACK) rect = t4.get_rect() rect.center = (200, 310) menu.blit(t4, rect) t5 = mini_font.render(str(score_list[4]), False, BLACK) rect = t5.get_rect() rect.center = (200, 330) menu.blit(t5, rect) t6 = mini_font.render(str(score_list[5]), False, BLACK) rect = t6.get_rect() rect.center = (270, 250) menu.blit(t6, rect) t7 = mini_font.render(str(score_list[6]), False, BLACK) rect = t7.get_rect() rect.center = (270, 270) menu.blit(t7, rect) t8 = mini_font.render(str(score_list[7]), False, BLACK) rect = t8.get_rect() rect.center = (270, 290) menu.blit(t8, rect) t9 = mini_font.render(str(score_list[8]), False, BLACK) rect = t9.get_rect() rect.center = (270, 310) menu.blit(t9, rect) t10 = mini_font.render(str(score_list[9]), False, BLACK) rect = t10.get_rect() rect.center = (270, 330) menu.blit(t10, rect) pygame.display.update() for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() elif event.type == pygame.KEYDOWN: if event.key == pygame.K_y: Menu(score_list) if event.key == pygame.K_n: e = False # button 3 if 50 < cur[0] < 150 and 430 < cur[1] < 480: click_sound.play() Button(menu, "Quit", ORANGE, 50, 430, 100, 50) pygame.display.update() pygame.quit() pygame.display.update() pygame.quit()
def setUp(self): self.tetris = Tetris() self.display = pygame.display.set_mode((800, 700)) self.gameloop = GameLoop(self.display) self.blocks = Blocks()