예제 #1
0
class WinScreen(Screen):
    def __init__(self, gm):
        super().__init__()
        self.mainmenu_button = Button(50, 100, 200, 50, "Main Menu", gm)
        self.quit_button = Button(300, 100, 200, 50, 'Quit Game', gm)

    def run(self, gm):

        click = False
        running = True
        pygame.mixer.Channel(0).play(pygame.mixer.Sound("sounds/Win.ogg"))

        while running:
            gm.clock.tick(60)
            gm.fake_screen.blit(gm.game_screen.background,
                                gm.game_screen.background.get_rect())
            gm.game_screen.hero.draw(gm)
            self.draw_text('You win', gm.font_big, (255, 255, 255),
                           gm.fake_screen, (960, 350))
            self.draw_text('Score: {}'.format(int(gm.game_screen.score)),
                           gm.font_med, (255, 255, 255), gm.fake_screen,
                           (960, 550))

            mx, my = gm.mousepos

            #Avalia botão quit
            if self.quit_button.contour.collidepoint((mx, my)):
                self.quit_button.draw(True, gm)
                if click:
                    gm.actual_screen = gm.quit_confirmation_screen
                    running = False
            else:
                self.quit_button.draw(False, gm)

            #Avalia botão menu
            if self.mainmenu_button.contour.collidepoint((mx, my)):
                self.mainmenu_button.draw(True, gm)
                if click:
                    gm.game_screen.new_game(gm)
                    gm.actual_screen = gm.menu_screen
                    running = False
            else:
                self.mainmenu_button.draw(False, gm)

            click = False

            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    gm.game_screen.onCleanup(gm)

                if event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE:
                    gm.actual_screen = gm.quit_confirmation_screen
                    running = False

                if event.type == pygame.MOUSEBUTTONDOWN:
                    if event.button == 1:
                        click = True

            self.run_screen(gm)
class QuitConfirmationScreen(Screen):
    def __init__(self, gm):
        super().__init__()
        self.button_1 = Button(50, 100, 200, 50, "Cancel", gm)
        self.button_2 = Button(350, 100, 200, 50, "Quit", gm)

    def run(self, gm):

        running = True
        click = False

        while running:
            gm.clock.tick(60)
            gm.fake_screen.fill((0, 0, 0))
            self.draw_text('Do you really want to quit?', gm.font,
                           (255, 255, 255), gm.fake_screen, (960, 20))

            mx, my = gm.mousepos

            if self.button_1.contour.collidepoint((mx, my)):
                self.button_1.draw(True, gm)
                if click:
                    running = False
                    gm.game_screen.endGame(gm)
                    gm.actual_screen = gm.menu_screen
            else:
                self.button_1.draw(False, gm)

            if self.button_2.contour.collidepoint((mx, my)):
                self.button_2.draw(True, gm)
                if click:
                    gm.game_screen.endGame(gm)
                    gm.game_screen.onCleanup(gm)
            else:
                self.button_2.draw(False, gm)

            click = False

            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    gm.game_screen.endGame(gm)
                    gm.game_screen.onCleanup(gm)

                if event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE:
                    running = False
                    gm.actual_screen = gm.menu_screen

                if event.type == pygame.MOUSEBUTTONDOWN:
                    if event.button == 1:
                        click = True

            self.run_screen(gm)
예제 #3
0
class PauseScreen(Screen):
    def __init__(self, gm):
        super().__init__()
        self.resume_button = Button(50, 100, 200, 50, "Resume", gm)
        self.mainmenu_button = Button(50, 200, 200, 50, "Main Menu", gm)
    
    def run(self, gm):

        click=False
        running = True
        
        while running:

            gm.clock.tick(60)
            gm.fake_screen.fill((0,0,0))
            self.draw_text('Pause Menu', gm.font, (255, 255, 255), gm.fake_screen, (960,20))
    
            mx, my = gm.mousepos

            #Seleciona botões
            if self.resume_button.contour.collidepoint((mx, my)):
                self.resume_button.draw(True, gm)
                if click:
                    gm.actual_screen = gm.game_screen
                    running = False 
            else:
                self.resume_button.draw(False, gm)

            if self.mainmenu_button.contour.collidepoint((mx, my)):
                self.mainmenu_button.draw(True, gm)
                if click:
                    gm.game_screen.new_game(gm)
                    gm.actual_screen = gm.menu_screen 
                    running = False
            else:
                self.mainmenu_button.draw(False, gm)

            click = False
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    gm.game_screen.onCleanup()
                
                if event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE:
                    running = False

                if event.type == pygame.MOUSEBUTTONDOWN:
                    if event.button == 1:
                        click = True

            self.run_screen(gm)
예제 #4
0
    if event.type == pygame.QUIT:
        run = False

    mouse = pygame.mouse.get_pos()
    # mouse hovered over button
    newGameButton.hover(mouse)
    easyButton.hover(mouse)
    mediumButton.hover(mouse)
    hardButton.hover(mouse)
    checkBoardButton.hover(mouse)
    checkMoveButton.hover(mouse)
    solveButton.hover(mouse)
    clearButton.hover(mouse)

    newGameButton.draw(newGameButton.clicked)
    easyButton.draw(easyButton.clicked)
    mediumButton.draw(mediumButton.clicked)
    hardButton.draw(hardButton.clicked)
    checkBoardButton.draw(checkBoardButton.clicked)
    checkMoveButton.draw(checkMoveButton.clicked)
    solveButton.draw(solveButton.clicked)
    clearButton.draw(clearButton.clicked)

    if event.type == pygame.MOUSEBUTTONDOWN:
        pos = pygame.mouse.get_pos()
        tile = grid.clicked(pos)
        # tile clicked
        if tile:
            grid.click(tile[0], tile[1])
        else:
예제 #5
0
class InstructionsScreen(Screen):
    def __init__(self, gm):
        super().__init__()
        self.mainmenu_button = Button(50, 900, 200, 50, "Main Menu", gm)
        self.keys_image = pygame.image.load('imgs/teclas.png')
        self.mouse_image = pygame.image.load('imgs/mouse_click.png')
        self.esc_image = pygame.image.load('imgs/esc.png')

    def run(self, gm):

        running = True
        click = False

        while running:
            gm.clock.tick(60)
            gm.fake_screen.fill((0, 0, 0))
            self.draw_text('Instructions', gm.font, (255, 255, 255),
                           gm.fake_screen, ((960, 20)))
            gm.fake_screen.blit(self.keys_image, [100, 150])
            self.draw_text('Movimentar jogador', gm.font_p, (255, 255, 255),
                           gm.fake_screen, ((1100, 200)))
            gm.fake_screen.blit(self.mouse_image, [200, 380])
            self.draw_text('Atirar', gm.font_p, (255, 255, 255),
                           gm.fake_screen, ((1100, 480)))
            gm.fake_screen.blit(self.esc_image, [200, 650])
            self.draw_text('Pausar', gm.font_p, (255, 255, 255),
                           gm.fake_screen, ((1100, 750)))

            mx, my = gm.mousepos

            #Selecionar botão
            if self.mainmenu_button.contour.collidepoint((mx, my)):
                self.mainmenu_button.draw(True, gm)
                if click:
                    gm.actual_screen = gm.menu_screen
                    running = False
            else:
                self.mainmenu_button.draw(False, gm)

            click = False

            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    gm.game_screen.onCleanup(gm)

                if event.type == pygame.MOUSEBUTTONDOWN:
                    if event.button == 1:
                        click = True

                if event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE:
                    running = False

                if event.type == pygame.VIDEORESIZE:
                    if gm.window_resolution != event.size:
                        gm.fullscreen = False
                        gm.window_resolution = event.size
                        gm.screen = pygame.display.set_mode(event.size)
                        gm.screen.blit(
                            pygame.transform.scale(gm.fake_screen,
                                                   gm.window_resolution),
                            (0, 0))
                        pygame.display.flip()

                if event.type == pygame.USEREVENT + 1:
                    if not gm.fullscreen:
                        gm.fullscreen = True
                        gm.window_resolution = gm.monitor_resolution
                        gm.screen = pygame.display.set_mode(
                            gm.window_resolution, pygame.FULLSCREEN)
                        gm.screen.blit(
                            pygame.transform.scale(gm.fake_screen,
                                                   gm.window_resolution),
                            (0, 0))
                        pygame.display.flip()

            self.run_screen(gm)
예제 #6
0
def main():
    pg.init()
    screen = display("Drawing", size(), Color('white'), fullscreen=True)
    width, height = size()
    playing = True

    #Color buttons
    black = Button(Color('black'), 10, 10, 50, 50)
    black.draw(screen, outline=Color('black'))
    white = Button(Color('white'), 10, 60, 50, 50)
    white.draw(screen, outline=Color('black'))
    red = Button(Color('red'), 10, 110, 50, 50)
    red.draw(screen, outline=Color('black'))
    blue = Button(Color('blue'), 10, 160, 50, 50)
    blue.draw(screen, outline=Color('black'))
    green = Button(Color('green'), 10, 210, 50, 50)
    green.draw(screen, outline=Color('black'))
    yellow = Button(Color('yellow'), 10, 260, 50, 50)
    yellow.draw(screen, outline=Color('black'))
    magenta = Button(Color('magenta'), 10, 310, 50, 50)
    magenta.draw(screen, outline=Color('black'))
    cyan = Button(Color('cyan'), 10, 360, 50, 50)
    cyan.draw(screen, outline=Color('black'))

    quit_button = Button(Color('red'), (width - 300), (height - 150),
                         200,
                         75,
                         text='Quit')
    quit_button.draw(screen)
    pg.display.flip()

    color = 'black'

    while playing:
        left_pressed, middle_pressed, right_pressed = pg.mouse.get_pressed()

        events = pg.event.get()
        for event in events:
            if event.type == pg.QUIT:
                exit(0)
            if event.type == pg.KEYDOWN:
                if event.key == pg.K_g:
                    playing = False
            if event.type == pg.MOUSEBUTTONDOWN:
                pos = pg.mouse.get_pos()
                if black.is_over(pos):
                    color = 'black'
                if white.is_over(pos):
                    color = 'white'
                if red.is_over(pos):
                    color = 'red'
                if green.is_over(pos):
                    color = 'green'
                if blue.is_over(pos):
                    color = 'blue'
                if yellow.is_over(pos):
                    color = 'yellow'
                if magenta.is_over(pos):
                    color = 'magenta'
                if cyan.is_over(pos):
                    color = 'cyan'
                if quit_button.is_over(pos):
                    playing = False
            if left_pressed:
                pg.draw.circle(screen, Color(color), (pg.mouse.get_pos()), 5)
        pg.display.flip()
예제 #7
0
                name_change = True
            if ev.type == pygame.KEYDOWN:
                if name_change:
                    if ev.key == pygame.K_RETURN:
                        name_change = False
                    elif ev.key == pygame.K_BACKSPACE:
                        player.name = player.name[:-1]
                    elif player.name.__len__() < 10:
                        player.name += ev.unicode
        else:
            name_change = False

    if menu:
        pygame.draw.rect(win, GREEN1, (0, 0, screen_width, screen_height))
        act = start_but.draw(win, screen_width / 2 - start_but.width / 2, 0,
                             "Start", click, m_pos, int(screen_width / 50),
                             BLACK, BLACK)
        if act == 1:
            menu = False
            lvlstart_time = time.time()
            before_lvlstart = True
        if act == 1 or act == -1:
            onbutton = True
        else:
            onbutton = False

        can_lvlup, onbutton, money, m = draw_updates(can_lvlup, onbutton,
                                                     money)
        if name_change:
            pygame.draw.rect(
                win, SILVER,
예제 #8
0
class OptionsScreen(Screen):
    def __init__(self, gm):
        super().__init__()
        self.button_1 = Button(50, 100, 200, 50, "960 x 540", gm)
        self.button_2 = Button(50, 200, 200, 50, "1280 x 720", gm)
        self.button_3 = Button(50, 300, 200, 50, "1920 x 1080", gm)
        self.button_4 = Button(50, 400, 200, 50, "Fullscreen", gm)
        self.mainmenu_button = Button(50, 500, 200, 50, "Main Menu", gm)

    def run(self, gm):

        running = True
        click = False

        while running:
            gm.clock.tick(60)
            gm.fake_screen.fill((0, 0, 0))
            self.draw_text('Options', gm.font, (255, 255, 255), gm.fake_screen,
                           ((960, 20)))

            mx, my = gm.mousepos

            #Selecionar botão
            if self.button_1.contour.collidepoint((mx, my)):
                self.button_1.draw(True, gm)
                if click:
                    self.post_resize_event((960, 540))
            else:
                self.button_1.draw(False, gm)

            if self.button_2.contour.collidepoint((mx, my)):
                self.button_2.draw(True, gm)
                if click:
                    self.post_resize_event((1280, 720))
            else:
                self.button_2.draw(False, gm)

            if self.button_3.contour.collidepoint((mx, my)):
                self.button_3.draw(True, gm)
                if click:
                    self.post_resize_event((1920, 1080))
            else:
                self.button_3.draw(False, gm)

            if self.button_4.contour.collidepoint((mx, my)):
                self.button_4.draw(True, gm)
                if click:
                    self.post_fullscreen()
            else:
                self.button_4.draw(False, gm)

            if self.mainmenu_button.contour.collidepoint((mx, my)):
                self.mainmenu_button.draw(True, gm)
                if click:
                    gm.actual_screen = gm.menu_screen
                    running = False
            else:
                self.mainmenu_button.draw(False, gm)

            click = False

            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    gm.game_screen.onCleanup(gm)

                if event.type == pygame.MOUSEBUTTONDOWN:
                    if event.button == 1:
                        click = True

                if event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE:
                    running = False

                if event.type == pygame.VIDEORESIZE:
                    if gm.window_resolution != event.size:
                        gm.fullscreen = False
                        gm.window_resolution = event.size
                        gm.screen = pygame.display.set_mode(event.size)
                        gm.screen.blit(
                            pygame.transform.scale(gm.fake_screen,
                                                   gm.window_resolution),
                            (0, 0))
                        pygame.display.flip()

                if event.type == pygame.USEREVENT + 1:
                    if not gm.fullscreen:
                        gm.fullscreen = True
                        gm.window_resolution = gm.monitor_resolution
                        gm.screen = pygame.display.set_mode(
                            gm.window_resolution, pygame.FULLSCREEN)
                        gm.screen.blit(
                            pygame.transform.scale(gm.fake_screen,
                                                   gm.window_resolution),
                            (0, 0))
                        pygame.display.flip()

            self.run_screen(gm)
예제 #9
0
def main():
    pg.init()

    bgcolor = color['white']
    screen = display("Relationship To Person",
                     size(),
                     bgcolor,
                     fullscreen=True)

    width, height = size()
    clock = pg.time.Clock()

    data = get_database('family.db', 'family_info',
                        ('rowid', 'name', 'gender', 'relation', 'image'))

    relations = [
        'aunt', 'uncle', 'cousin', 'grandma', 'grandpa', 'sister', 'mom', 'dad'
    ]

    lastans = 'Filler'

    quit_button = Button(color['red'], (width - 300), (height - 150),
                         200,
                         75,
                         text='Quit')

    playing = True

    while playing:
        correct = False
        spoken = False
        shuffle(data)

        person = data[0]
        while person['relation'] == lastans:
            shuffle(data)
            person = data[0]

        image = pg.image.load(f'img/{person["image"]}')
        ans = person['relation']

        guesses = [person['relation']]
        for i in range(2):
            select = choice(relations)
            while select in guesses:
                select = choice(relations)
            guesses.append(select)

        shuffle(guesses)

        height_div = [4, 2, 1.3]

        font = pg.font.SysFont('quicksandmedium', 80)

        while not correct and playing:

            events = pg.event.get()
            for event in events:
                if event.type == pg.QUIT:
                    exit()
                if event.type == pg.MOUSEBUTTONDOWN:
                    pos = pg.mouse.get_pos()
                    if locals()[ans].is_over(pos):
                        speak(f'{locals()[ans].text} is the correct answer')
                        correct = True
                if event.type == pg.KEYDOWN:
                    if event.key == pg.K_g:
                        playing = False
                if event.type == pg.MOUSEBUTTONDOWN:
                    pos = pg.mouse.get_pos()
                    if quit_button.is_over(pos):
                        playing = False

            screen.fill(bgcolor)
            font = pg.font.SysFont('quicksandmedium', 60)
            text = font.render(
                f'This is {person["name"].capitalize()}. {"He" if person["gender"]=="boy" else "She"} is your... ',
                1, color['black'])

            screen.blit(text, (width // 10, height // 10))

            show_img(screen, image, width // 4, height // 2)
            quit_button.draw(screen)
            for x, guess in enumerate(guesses):
                locals()[guess] = Button(color['magenta'], (width // 1.3),
                                         (height // height_div[x]),
                                         300,
                                         75,
                                         text=guess)
                locals()[guess].draw(screen)
            pg.display.flip()
            while not spoken:
                speak(
                    f'This is {person["name"].capitalize()}. {"He" if person["gender"]=="boy" else "She"} is your... '
                )
                spoken = True
            lastans = ans
예제 #10
0
class MenuScreen(Screen):

    def __init__(self,gm, background = "imgs/menu_background.png"):
        super().__init__(background)
        self.play_button = Button(860, 100, 200, 50, 'Play Game', gm)
        self.options_button = Button(860, 200, 200, 50, 'Settings', gm)
        self.instructions_button = Button(860, 300, 200, 50, 'Instructions', gm)
        self.quit_button = Button(860, 400, 200, 50, 'Quit Game', gm)



    def run(self, gm):
        
        click = False
        can_play_sound=True
        running = True

        while running:
            gm.clock.tick(60)
            gm.fake_screen.blit(self.background,self.background.get_rect())
            self.draw_text('Main Menu', gm.font, (255, 255, 255), gm.fake_screen, (960,20))
            mx, my = gm.mousepos

            #Seleção dos botões

            if self.play_button.contour.collidepoint((mx, my)):
                self.play_button.draw(True, gm)
                if can_play_sound:
                    can_play_sound = False
                    self.play_button.sound(True, False)
                if click:
                    self.play_button.sound(False, True)
                    gm.actual_screen = gm.game_screen
                    running = False    
            else:
                self.play_button.draw(False, gm)
                can_play_sound = True


            if self.options_button.contour.collidepoint((mx, my)):
                self.options_button.draw(True, gm)
                if click:
                    gm.actual_screen = gm.options_screen
                    running = False
            else:
                self.options_button.draw(False, gm)
            

            if self.instructions_button.contour.collidepoint((mx, my)):
                self.instructions_button.draw(True,gm)
                if click:
                    gm.actual_screen = gm.instructions_screen
                    running = False
            else:
                self.instructions_button.draw(False,gm)


            if self.quit_button.contour.collidepoint((mx, my)):
                self.quit_button.draw(True,gm)
                if click:
                    gm.actual_screen = gm.quit_confirmation_screen
                    running = False
            else:
                self.quit_button.draw(False,gm)
     

            click = False

            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    gm.game_screen.onCleanup(gm)
                
                if event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE:
                    running = False
                    gm.actual_screen = gm.quit_confirmation_screen

                if event.type == pygame.MOUSEBUTTONDOWN:
                    if event.button == 1:
                        click = True

            self.run_screen(gm)
예제 #11
0
def main():
    pg.init()

    bgcolor = color['white']
    screen = display("Name To Person", size(), bgcolor, fullscreen=True)

    width, height = size()
    clock = pg.time.Clock()

    quit_button = Button(color['red'], (width - 300), (height - 150),
                         200,
                         75,
                         text='Quit')
    data = get_database('family.db', 'family_info',
                        ('rowid', 'name', 'gender', 'relation', 'image'))
    lastans = 0
    var_dict = {}
    var_dict = copy.deepcopy(name_var_dict)
    playing = True

    while playing:

        events = pg.event.get()
        for event in events:
            if event.type == pg.QUIT:
                exit()
            if event.type == pg.MOUSEBUTTONDOWN:
                x, y = event.pos
                if picture.get_rect(center=location).collidepoint(x, y):
                    speak('That is the correct answer')
                    var_dict = copy.deepcopy(name_var_dict)
            if event.type == pg.KEYDOWN:
                if event.key == pg.K_g:
                    playing = False
            if event.type == pg.MOUSEBUTTONDOWN:
                pos = pg.mouse.get_pos()
                if quit_button.is_over(pos):
                    playing = False

        screen.fill(bgcolor)

        while len(var_dict['person']) < 3:
            rowid = randrange(len(data)) + 1
            if rowid == lastans:
                var_dict['picked'].append(rowid)
            while rowid in var_dict['picked']:
                rowid = randrange(len(data)) + 1
            var_dict['picked'].append(rowid)
            for entry in data:
                if entry['rowid'] == rowid:
                    var_dict['person'].append(entry)
                    mem = var_dict['person'][int(len(var_dict['person']) - 1)]
                    image = pg.image.load(f'img/{mem["image"]}')
                    img_w, img_h = image.get_size()
                    image = pg.transform.scale(
                        image, (int(img_w * .5), int(img_h * .5)))
                    var_dict['images'].append(
                        show_img(screen, image,
                                 (len(var_dict['person']) * width) // 4,
                                 height // 4))
                    var_dict['center'].append(
                        (len(var_dict['person']) * width // 4, height // 4))
        for x, img in enumerate(var_dict['images']):
            show_img(screen, img, ((x + 1) * width) // 4, height // 4)

        quit_button.draw(screen)
        pg.display.flip()

        while not var_dict['selected']:
            ans = randrange(3)
            answer = var_dict['person'][ans]

            pg.display.flip()
            picture = var_dict['images'][ans]
            location = var_dict['center'][ans]
            print(answer)
            speak(f'which one is {answer["name"]}')
            lastans = answer['rowid']
            var_dict['selected'] = True

        clock.tick(30)
예제 #12
0
class Game:
    def __init__(self):
        self.onlinePvPrun = False
        self.localPvErun = False
        self.screen = pygame.display.set_mode(SIZE)
        self.running = True
        self.localPvPrun = False
        self.clock = pygame.time.Clock()
        self.button = Button
        self.load_data()

    def draw_text(self, text, font_name, size, color, x, y, align="nw"):
        font = pygame.font.Font(font_name, size)
        text_surface = font.render(text, True, color)
        text_rect = text_surface.get_rect()
        if align == "nw":
            text_rect.topleft = (x, y)
        if align == "ne":
            text_rect.topright = (x, y)
        if align == "sw":
            text_rect.bottomleft = (x, y)
        if align == "se":
            text_rect.bottomright = (x, y)
        if align == "n":
            text_rect.midtop = (x, y)
        if align == "s":
            text_rect.midbottom = (x, y)
        if align == "e":
            text_rect.midright = (x, y)
        if align == "w":
            text_rect.midleft = (x, y)
        if align == "center":
            text_rect.center = (x, y)
        self.screen.blit(text_surface, text_rect)

    def load_data(self):
        self.font = pygame.font.Font(None, 34)
        self.yes1 = pygame.image.load("rec/yes.png")
        self.yes2 = pygame.image.load("rec/yes2.png")
        self.no1 = pygame.image.load("rec/no.png")
        self.no2 = pygame.image.load("rec/no2.png")
        self.localPvP_button = Button("LocalPvP", 10, 10, RED)
        self.localPvE_button = Button("LocalPvE", 170, 10, RED)
        self.onlinePvP_button = Button("OnlinePvP", 330, 10, RED)

    def events(self):
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                self.running = False
            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_SPACE:
                    self.localPvErun = True
        self.mouse = pygame.mouse.get_pos()
        self.click = pygame.mouse.get_pressed()
        self.test = self.localPvP_button.click((self.mouse[0], self.mouse[1]))
        self.test2 = self.localPvE_button.click((self.mouse[0], self.mouse[1]))
        self.test3 = self.onlinePvP_button.click(
            (self.mouse[0], self.mouse[1]))

    def update(self):
        if self.test and self.click[0] >= 1:
            print(self.click)
            self.localPvPrun = True
        if self.test2 and self.click[0] >= 1:
            print(self.click)
            self.localPvErun = True
        if self.test3 and self.click[0] >= 1:
            print(self.click)
            self.onlinePvPrun = True

    def draw(self):
        # Filling the Background
        self.screen.fill(DARKBLUE)
        self.localPvP_button.draw(self.screen)
        self.localPvE_button.draw(self.screen)
        self.onlinePvP_button.draw(self.screen)
        self.draw_text(f"{int(self.dt*1000.0)}", None, 25, RED, 0, 0)
        pygame.display.flip()

    def run(self):
        while self.running:
            self.dt = self.clock.tick(FPS) / 1000.0
            if self.localPvPrun:
                self.game = PvP(self.screen)
                self.game.load_data()
                self.game.run()
                if not self.game.running:
                    self.localPvPrun = False
            if self.localPvErun:
                self.game = PvE(self.screen)
                self.game.load_data()
                self.game.run()
                if not self.game.running:
                    self.localPvErun = False
            if self.onlinePvPrun:
                self.game = oPvP(self.screen)
                self.game.load_data()
                self.game.run()
                if not self.game.running:
                    self.onlinePvPrun = False

            self.events()
            self.update()
            self.draw()