Exemple #1
0
    def __init__(self, file_location: str):
        self.size = 1024, 576
        self.screen = pygame.display.set_mode(self.size)
        self.screen.fill((255, 255, 255))
        self.background = pygame.image.load(file_location)
        self.screen.blit(self.background, (0, 0))
        self.next = None
        self.previous = None

        # dodaje przycisk powrotu do menu
        self.ret_menu = Button((242, 209, 107), 830, 460, 140, 60, 24, "Menu")
        self.ret_menu.draw(self.screen)
        pygame.display.update()
Exemple #2
0
class TutorialScreen:
    """ Klasa odpowiedzialna za każdy z ekranów tutoriala"""
    def __init__(self, file_location: str):
        self.size = 1024, 576
        self.screen = pygame.display.set_mode(self.size)
        self.screen.fill((255, 255, 255))
        self.background = pygame.image.load(file_location)
        self.screen.blit(self.background, (0, 0))
        self.next = None
        self.previous = None

        # dodaje przycisk powrotu do menu
        self.ret_menu = Button((242, 209, 107), 830, 460, 140, 60, 24, "Menu")
        self.ret_menu.draw(self.screen)
        pygame.display.update()

    def add_next_button(self, pos: tuple):
        self.next = Button((242, 209, 107), pos[0], pos[1], 140, 60, 24,
                           "Dalej")
        self.next.draw(self.screen)
        pygame.display.update()

    def add_previous_button(self, pos: tuple):
        self.previous = Button((242, 209, 107), pos[0], pos[1], 140, 60, 24,
                               "Wstecz")
        self.previous.draw(self.screen)
        pygame.display.update()
Exemple #3
0
def display_instructions():
    pygame.init()
    is_done = False
    screen = TutorialScreen('Instructions/graphics/plansza1.jpg')
    screen_number = 1
    """ Poniższe dwa przyciski służą jako wybierajka w tutorialu"""
    classic = Button((242, 209, 107), 116, 228, 280, 120, 34, "Tryb Klasyczny")
    classic.draw(screen.screen)
    word = Button((242, 209, 107), 628, 228, 280, 120, 34, "Tryb Słowny")
    word.draw(screen.screen)
    pygame.display.update()

    word_flag = 0  # flaga, która zapobiega wciśnięciu przycisku classic, niewidocznego, ale znajdującego się na planszy z wersją słowną
    """ Main loop tutoriala """
    while not is_done:
        for event in pygame.event.get():
            if event.type == pygame.MOUSEBUTTONDOWN:
                pos = pygame.mouse.get_pos()
                """ Poniższy kod to jakaś smutna porażka, aż wstyd przyznawać się do takiego raka """
                if screen_number == 1:
                    pos = pygame.mouse.get_pos()
                    """ Wybierajka dla tutoriala"""
                    if classic.is_pointing(pos) and word_flag == 0:
                        screen_number += 1
                        screen = TutorialScreen(
                            'Instructions/graphics/plansza' +
                            str(screen_number) + '.jpg')
                        screen.add_next_button((426, 460))
                        screen.add_previous_button((54, 460))
                    if word.is_pointing(pos):
                        screen = TutorialScreen(
                            'Instructions/graphics/word1.jpg')
                        word_flag = 1
                        """ Warunek powrotu do menu """
                if screen.ret_menu.is_pointing(pos):
                    is_done = True
                    word_flag = 0
                elif screen.next is not None:  # warunek, który pozwala na pozostanie na ekranie wersji słownej, aż do kliknięcia menu
                    if screen.next.is_pointing(pos):
                        """ obsługa kolejnych ekranów"""
                        screen_number += 1
                        screen = TutorialScreen(
                            'Instructions/graphics/plansza' +
                            str(screen_number) + '.jpg')
                        """ dla ekranów od 1 do 5 rysuję przyciski w pewnych miejscach,
                            dla ekranów od 5 do 10 rysuje w innym miejscu """
                        if 0 < screen_number < 5:
                            screen.add_next_button((426, 460))
                            screen.add_previous_button((54, 460))
                        elif 5 <= screen_number < 10:
                            screen.add_next_button((680, 460))
                            screen.add_previous_button((530, 460))
                    elif screen_number > 1:
                        """ obsługa poprzednich ekranów (ale kolejnych do narysowania, chodzi o to że się cofamy) """
                        if screen.previous.is_pointing(pos):
                            screen_number -= 1
                            screen = TutorialScreen(
                                'Instructions/graphics/plansza' +
                                str(screen_number) + '.jpg')
                            """ dla ekranów od 1 do 5 rysuję przyciski w pewnych miejscach,
                                dla ekranów od 5 do 10 rysuje w innym miejscu """
                            if 1 < screen_number < 5:
                                screen.add_next_button((426, 460))
                                screen.add_previous_button((54, 460))
                            elif 5 <= screen_number < 10:
                                screen.add_next_button((680, 460))
                                screen.add_previous_button((530, 460))
                            else:
                                """ Tutaj wracamy do 1 ekranu, czyli do wybierajki """
                                classic = Button((242, 209, 107), 116, 228,
                                                 280, 120, 34,
                                                 "Tryb Klasyczny")
                                classic.draw(screen.screen)
                                word = Button((242, 209, 107), 628, 228, 280,
                                              120, 34, "Tryb Słowny")
                                word.draw(screen.screen)
                                pygame.display.update()
Exemple #4
0
 def add_previous_button(self, pos: tuple):
     self.previous = Button((242, 209, 107), pos[0], pos[1], 140, 60, 24,
                            "Wstecz")
     self.previous.draw(self.screen)
     pygame.display.update()
Exemple #5
0
 def add_next_button(self, pos: tuple):
     self.next = Button((242, 209, 107), pos[0], pos[1], 140, 60, 24,
                        "Dalej")
     self.next.draw(self.screen)
     pygame.display.update()
    def __init__(self):
        self.size = self.width, self.height = 1024, 576
        self.color = (128, 205, 50)
        pygame.init()
        self.board = pygame.display.set_mode(
            self.size, pygame.HWSURFACE | pygame.DOUBLEBUF)
        self.board.fill(self.color)

        # rysuje tytuł
        self.title = "Statystyki"
        font = pygame.font.SysFont('gfx/ARCADECLASSIC.TFF', 52)
        title = font.render(self.title, 1, (47, 23, 56))
        self.board.blit(title, (
            self.width / 2 - title.get_width() / 2,
            self.height / 12 - title.get_height() / 12,
        ))

        # rysuje przycisk "powrot"
        self.go_back = Button((0, 100, 200), 442, 420, 140, 60, 24, "Powrót")
        self.go_back.draw(self.board)

        # pętla wypisująca zawartość stats.txt na ekran
        spacer = 120
        font = pygame.font.SysFont('gfx/ARCADECLASSIC.TFF', 34)
        data = Stats()
        data.load_stats()
        for name, number in data.__dict__.items():
            if name == "played_matches":
                text = font.render("Rozegrane gry  =  " + str(number), 1,
                                   (10, 10, 10))
                self.board.blit(
                    text, (self.width / 5 - title.get_width() / 5, spacer))
                spacer += 60
                pygame.display.update()
            elif name == "won_matches":
                text = font.render("Wygrane gry  =  " + str(number), 1,
                                   (10, 10, 10))
                self.board.blit(
                    text, (self.width / 5 - title.get_width() / 5, spacer))
                spacer += 60
                pygame.display.update()
            elif name == "win_percentage":
                text = font.render(
                    "Procent zwycięstw  =  " + str(number) + "%", 1,
                    (10, 10, 10))
                self.board.blit(
                    text, (self.width / 5 - title.get_width() / 5, spacer))
                spacer += 60
                pygame.display.update()
            elif name == "normal_mastermind":
                text = font.render(
                    '''Gry rozegrane w trybie "Mastermind"  =  ''' +
                    str(number), 1, (10, 10, 10))
                self.board.blit(
                    text, (self.width / 5 - title.get_width() / 5, spacer))
                spacer += 60
                pygame.display.update()
            elif name == "word_version":
                text = font.render(
                    '''Gry rozegrane w trybie słownym  =  ''' + str(number), 1,
                    (10, 10, 10))
                self.board.blit(
                    text, (self.width / 5 - title.get_width() / 5, spacer))
                spacer += 60
                pygame.display.update()
        pygame.display.update()