Пример #1
0
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()
Пример #2
0
 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)
Пример #3
0
    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
Пример #4
0
    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()
Пример #5
0
 def setUp(self):
     self.gameloop = GameLoop()
Пример #6
0
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())
Пример #7
0
'''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]
Пример #8
0
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()
Пример #9
0
 def setUp(self):
     self.tetris = Tetris()
     self.display = pygame.display.set_mode((800, 700))
     self.gameloop = GameLoop(self.display)
     self.blocks = Blocks()