def basicElements(self):
        time = self.session.getTime()
        start_btn = buttons["start_match"].copy()
        start_label = text("Próxima Fase", "asap/regular.ttf", 18, "#FFFFFF",
                           (120, 25))
        start_btn.blit(start_label, (53, 12))

        basic_text = "Você conseguiu concluir o nível {} em {}:{} min. Sua pontuação nessa fase foi de {} pontos, e você tem {} pontos acumulados. Continue assim.".format(
            level_names[self.session.level], str(time[0]), str(time[1]),
            str(self.session.score), str(self.session.game.getGeralScore()))

        congrats = text("Parabéns!!", "righteous/regular.ttf", 56, "#373737",
                        (284, 125))
        levels = text(
            str(self.session.level) + " de " +
            str(len(self.session.game.countries)) + " fases",
            "mclaren/regular.ttf", 14, "#777777", (90, 25))
        basic_text = text(basic_text, "asap/regular.ttf", 20, "#373737",
                          (315, 140))

        score = extras["points"].copy()
        score_label = text(str(self.session.game.getGeralScore()),
                           "asap/bold.ttf", 28, "#555555", (98, 35))
        score.blit(score_label, (45, 5))

        self.addButton(start_btn, (180, 395), (205, 45), self.startNextLevel,
                       self.base_screen)
        self.base_screen.blit(congrats, (180, 120))
        self.base_screen.blit(levels, (180, 183))
        self.base_screen.blit(basic_text, (180, 237))
        self.base_screen.blit(extras["winner"], (562, 140))
        self.base_screen.blit(score, (640, 419))

        self.mounted_screen = self.base_screen.copy()
示例#2
0
    def renderButtons(self):
        start = buttons["start_match"].copy()
        level = buttons["choose_level"].copy()
        ranking = buttons["ranking"].copy()
        rules = buttons["how_play"].copy()

        start.blit(text("Iniciar Partida", "asap/regular.ttf", 18, "#FFFFFF", (120, 25)), (53, 12))
        level.blit(text("Escolher Level", "asap/regular.ttf", 18, "#FFFFFF", (120, 25)), (53, 12))
        ranking.blit(text("Meu Ranking", "asap/regular.ttf", 18, "#FFFFFF", (120, 25)), (53, 12))
        rules.blit(text("Como Jogar?", "asap/regular.ttf", 18, "#FFFFFF", (120, 25)), (53, 12))

        self.addButton(start, (73, 141), (205, 45), self.startMatch, self.base_screen)
        self.addButton(level, (73, 198), (205, 45), self.showLevels, self.base_screen)
        self.addButton(ranking, (73, 255), (205, 45), self.showRanking, self.base_screen)
        self.addButton(rules, (73, 312), (205, 45), self.showRules, self.base_screen)

        self.mounted_screen = self.base_screen.copy()
示例#3
0
    def renderHint(self):
        hint = self.hint
        hint_text = str(hint +
                        1) + ". " + self.session.crossword.structure[hint].hint
        hint_label = text(hint_text, "asap/bold.ttf", 16, "#FFFFFF", (392, 64))

        self.mounted_screen = self.base_screen.copy()
        self.mounted_screen.blit(hint_label, (528, 507))
示例#4
0
    def renderDialog(self):
        posX = 50
        posY = 410

        phrase_wrapper = text(self.phrases[self.count], "asap/regular.ttf", 30,
                              "#484848", (800, 140))
        self.mounted_screen = self.base_screen.copy()
        self.mounted_screen.blit(phrase_wrapper, (posX, posY))
示例#5
0
    def showRanking(self, act):
        rect = pygame.Rect(452, 24, 468, 478)
        pos_name = (530, 140)
        pos_score = (815, 135)
        colors = ["#3ABA5E", "#3AB2BA", "#4E85DD", "#9D5EC3", "#F47588"]

        self.mounted_screen = self.base_screen.copy()
        self.mounted_screen.blit(modals["ranking"], rect)

        for index, p in enumerate(ranking.players):
            if index > 4: return
            name = text(p.player, "asap/medium.ttf", 28, colors[index], (220, 35))
            score = text(str(p.score), "mclaren/regular.ttf", 32, "#4D4D4D", (85, 50))

            self.mounted_screen.blit(name, pos_name)
            self.mounted_screen.blit(score, pos_score)

            pos_name = (pos_name[0], pos_name[1] + 77)
            pos_score = (pos_score[0], pos_score[1] + 77)
示例#6
0
    def showRules(self, act):
        rect = pygame.Rect(452, 24, 468, 478)
        rules = """Acompanhe Josh e o retorno de suas aventuras internacionais através de cruzadinhas que o farão aprender bastante.
                                                                                                                                                                                                
        O jogo é constituido de 5 fases, uma de cada país que Josh visitou. Seu objetivo é terminar as cruzadinhas no menor tempo possível, consultando as dicas que nosso instrutor disponibiliza. Quando descobrir uma palavra, não esqueça de consultar mais detalhes para enriquecer seu vocabulário e continuar aprendendo.                                                                                                                    
        Clique em uma linha ou coluna para começar a digitar. As palavras corretas serão identificadas automaticamente. Você pode pedir dicas clicando em \"?\", se quiser cancelar, basta tocar no botão power, divirta-se!"""

        self.mounted_screen = self.base_screen.copy()
        self.mounted_screen.blit(modals["how_play"], rect)
        self.mounted_screen.blit(text(rules, "mclaren/regular.ttf", 13, "#4D4D4D", (370, 352)), (532, 141))
示例#7
0
    def renderCrossword(self):
        crossword = self.session.crossword
        box = icons["letter_box"]
        box_rect = (30, 30)
        crossword_area_size = (544, 416)
        crossword_size = crossword.getSize()

        def textHander():
            word = self.typing_words[n]
            max_letters = len(crossword.structure[n].word)
            return lambda act: keyboard.setLetterSequence(word, max_letters)

        for n, word in enumerate(crossword.structure):
            for i, letter in enumerate(word.word):
                assigned_letter = self.typing_words[n][i] if len(
                    self.typing_words[n]) > i else ""
                posX = word.posX * box_rect[0] + 444 + (
                    crossword_area_size[0] - crossword_size[0]) / 2
                posY = word.posY * box_rect[1] + 51 + (crossword_area_size[1] -
                                                       crossword_size[1]) / 2
                adiction = (i * box_rect[1])

                if i == 0:
                    word_pos = text(
                        str(n + 1) + ".", "asap/bold.ttf", 16, "#3B3B3B",
                        (20, 20))
                    word_pos_X = posX + 10 if word.isVertical else posX - 20
                    word_pos_Y = posY + 7 if not word.isVertical else posY - 22

                    self.mounted_screen.blit(word_pos,
                                             (word_pos_X, word_pos_Y))

                if word.isVertical:
                    posY += adiction
                else:
                    posX += adiction

                letter_label = text(assigned_letter, "mclaren/regular.ttf", 20,
                                    self.color, (30, 30))

                self.addButton(box, (posX, posY), box_rect, textHander(),
                               self.mounted_screen)
                self.mounted_screen.blit(letter_label, (posX + 8, posY))
示例#8
0
    def renderRevealedWords(self):
        posX = (100, 235)
        posY = 100

        for i, word in enumerate(self.revealed_words):
            word_label = text(word.capitalize(), "asap/regular.ttf", 16,
                              "#FFFFFF", (125, 25))
            self.mounted_screen.blit(word_label, (posX[i % 2], posY))
            if (i % 2 == 1):
                posY += 30
    def basicElements(self):
        words_amount = len(self.session.crossword.structure)
        start_btn = buttons["start_match"].copy()
        start_label = text("Iniciar Partida", "asap/regular.ttf", 18,
                           "#FFFFFF", (120, 25))
        start_btn.blit(start_label, (53, 12))

        country_label = text("País: " + self.session.country["name"],
                             "asap/semibold.ttf", 27, "#373737", (220, 35))
        words_label = text(
            str(words_amount) + " palavras ocultas", "asap/italic.ttf", 20,
            "#5E5D5D", (220, 35))

        self.base_screen.blit(badges[self.session.level - 1], (295, 55))
        self.base_screen.blit(country_label, (247, 448))
        self.base_screen.blit(words_label, (247, 478))

        self.addButton(start_btn, (586, 452), (205, 45), self.startMatch,
                       self.base_screen)
        self.mounted_screen = self.base_screen.copy()
示例#10
0
    def staticElements(self):
        level = text("Nível {}: ".format(self.session.level), "asap/bold.ttf",
                     16, self.color, (60, 25))
        level_name = text(level_names[self.session.level], "asap/regular.ttf",
                          16, "#000000", (120, 25))

        self.base_screen.blit(level, (74, 45))
        self.base_screen.blit(level_name, (133, 45))
        self.base_screen.blit(icons["hints_label"], (528, 477))

        # Action Buttons
        self.addButton(icons["cancel"], (74, 508), (36, 36), None,
                       self.base_screen)
        self.addButton(icons["disable_sound"], (114, 508), (36, 36),
                       self.disableSound, self.base_screen)

        # Hint Buttons
        self.addButton(icons["hint"]["prev"][self.session.level], (477, 500),
                       (27, 27), self.removeFromHint, self.base_screen)
        self.addButton(icons["hint"]["next"][self.session.level], (937, 500),
                       (27, 27), self.addToHint, self.base_screen)

        self.mounted_screen = self.base_screen.copy()