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()
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()
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))
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))
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)
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))
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))
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()
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()