def new_rect(x, y): novo = pygame.draw.rect(definicoes.screen, definicoes.branco_ostra, (x, y, 100, 50)) usar = start.multi_box(novo.left + 10, novo.top, 80, 25, definicoes.branco_ostra, "Yes", "Usar") drop = start.multi_box(novo.left + 10, novo.top + 25, 80, 25, definicoes.branco_ostra, "Yes", "Drop") pygame.display.update() return novo, usar, drop
def load_tela_combat(): #tela de combate definicoes.screen.fill(definicoes.branco_ostra, definicoes.OpenMenu_rect) #barra de status statusBar = pygame.draw.rect( definicoes.screen, definicoes.vermelho_claro, (definicoes.OpenMenu_rect.left + 50, (definicoes.OpenMenu_rect.height / 2) - 30, 100, 25)) statusText = "Vida: " + str(definicoes.playerDict["TVida"]) monsterBar = pygame.draw.rect( definicoes.screen, definicoes.vermelho_claro, (definicoes.OpenMenu_rect.right - 150, (definicoes.OpenMenu_rect.height / 2) - 30, 100, 25)) monsterText = "Vida: " + str(definicoes.monsterLife) #localizacao do player na tela localizacaoPlayer = pygame.draw.rect( definicoes.screen, definicoes.branco_ostra, (definicoes.OpenMenu_rect.left + 50, definicoes.OpenMenu_rect.height / 2, 100, 100)) #localizacao do monstro na tela localizacaoMonstro = pygame.draw.rect( definicoes.screen, definicoes.branco_ostra, (definicoes.OpenMenu_rect.right - 150, definicoes.OpenMenu_rect.height / 2, 100, 100)) #imprimir texto de status na tela start.input_text(statusText, (statusBar.left + (statusBar.width / 2)), (statusBar.top + (statusBar.height / 2)), definicoes.white, "yes") start.input_text(monsterText, (monsterBar.right - (monsterBar.width / 2)), (monsterBar.top + (monsterBar.height / 2)), definicoes.white, "yes") #imprimir player na tela x = localizacaoPlayer.centerx - (definicoes.player_rect.width / 2) y = localizacaoPlayer.centery - (definicoes.player_rect.height / 2) definicoes.screen.blit(definicoes.playerD, (x, y)) #imprimir monstro na tela x = localizacaoMonstro.centerx - (definicoes.corvo_rect.width / 2) y = localizacaoMonstro.centery - (definicoes.corvo_rect.height / 2) definicoes.screen.blit(definicoes.corvo, (x, y)) #botao de ataque e fugir ataque = start.multi_box(definicoes.OpenMenu_rect.left, definicoes.OpenMenu_rect.bottom - 56, 80, 25, definicoes.vermelho, "Yes", "Ataque", definicoes.white) fugir = start.multi_box(definicoes.OpenMenu_rect.left, definicoes.OpenMenu_rect.bottom - 30, 80, 25, definicoes.vermelho, "Yes", "Fugir", definicoes.white) return ataque, fugir
def load_menu(menu_rect1=definicoes.white, menu_rect2=definicoes.white): definicoes.screen.fill(definicoes.branco_ostra, definicoes.menu_rect[0]) pygame.display.update(definicoes.menu_rect[0]) Text = start.input_text(definicoes.texto, (250), definicoes.height - 16, definicoes.black, "yes") definicoes.menu_rect[1] = start.multi_box(5, definicoes.height - 28, 80, 24, menu_rect1, "yes", "Char") definicoes.menu_rect[2] = start.multi_box(definicoes.width - 100, definicoes.height - 28, 80, 24, menu_rect2, "yes", "Save")
def print_tela(): option_rect = pygame.draw.rect(definicoes.screen, definicoes.branco_ostra, (definicoes.scr_rect.centerx - 50, definicoes.scr_rect.centery - 13, 120, 26)) buy = start.multi_box(option_rect.left + 5, option_rect.top + 3, 50, 20, definicoes.vermelho, "Yes", "BUY", definicoes.white) sell = start.multi_box(option_rect.left + 65, option_rect.top + 3, 50, 20, definicoes.vermelho, "Yes", "SELL", definicoes.white) return buy, sell
def buy_func(): definicoes.screen.fill(definicoes.branco_ostra, definicoes.OpenMenu_rect) close_Menu = start.multi_box(definicoes.OpenMenu_rect.right - 20, definicoes.OpenMenu_rect.top, 20, 20, definicoes.vermelho, "Yes", "X", definicoes.white) start.multi_box(definicoes.OpenMenu_rect.centerx - 70, definicoes.OpenMenu_rect.top + 3, 70, 40, definicoes.vermelho, "Yes", "BUY", definicoes.white) sell = start.multi_box(definicoes.OpenMenu_rect.centerx + 5, definicoes.OpenMenu_rect.top + 3, 70, 40, definicoes.vermelho, "Yes", "SELL", definicoes.white) line = pygame.draw.line(definicoes.screen, definicoes.vermelho, (definicoes.OpenMenu_rect.left, sell.bottom + 5), (definicoes.OpenMenu_rect.right, sell.bottom + 5), 5) qtd_dinheiro(line) linhas = 1 itens_rect = [] buy_exit = False sair = False sellBol = False if len(definicoes.lojaBuy) > 5: linhas = 2 for x in range(0, linhas, 1): for y in range(0, len(definicoes.lojaBuy), 1): j = pygame.draw.rect(definicoes.screen, definicoes.white, (definicoes.OpenMenu_rect.centerx - (y * 32), definicoes.OpenMenu_rect.centery - (x * 32), 38, 38), 5) itens_rect.append(j) #poem a imagem do itens na tela var = definicoes.lojaBuy[y] rectNome = definicoes.stats[var] rect = rectNome["rect"] img = definicoes.sprites[var] varY = j.centery - (rect.height / 2) varX = j.centerx - (rect.width / 2) definicoes.screen.blit(img, (varX, varY)) while not buy_exit: mouse = pygame.mouse.get_pos() for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() if event.type == pygame.MOUSEBUTTONDOWN: for loop in range(0, len(itens_rect), 1): if itens_rect[loop].collidepoint(mouse): var = definicoes.lojaBuy[loop] itenStats = definicoes.itensDef[var] defIten = definicoes.stats[itenStats] textoIten = defIten["nome"] + " --- Valor: " + str( defIten["venda"]) rect_texto_iten = start.multi_box( definicoes.OpenMenu_rect.left, definicoes.OpenMenu_rect.bottom - 30, 200, 30, definicoes.branco_ostra, "Yes", textoIten, definicoes.black) comprar = start.multi_box( rect_texto_iten.right + 10, definicoes.OpenMenu_rect.bottom - 30, 90, 30, definicoes.vermelho, "Yes", "Comprar", definicoes.white) try: if comprar.collidepoint(mouse): itenStats = definicoes.itensDef[var] defIten = definicoes.stats[itenStats] if definicoes.playerDict["moedas"] >= defIten["venda"]: definicoes.playerDict["moedas"] -= defIten["venda"] try: definicoes.inventario[var] += 1 except: definicoes.inventario[var] = 1 qtd_dinheiro(line) except: print "erro na func comprar" if sell.collidepoint(mouse): buy_exit = True sellBol = True elif close_Menu.collidepoint(mouse): buy_exit = True sair = True map_loader.load_tela(definicoes.playerDict["LARG"], definicoes.playerDict["LALT"]) player.player_load() definicoes.clock.tick(5) pygame.display.update() return close_Menu, sair, sellBol
def qtd_dinheiro(line): textoGold = "$: " + str(definicoes.playerDict["moedas"]) gold = start.multi_box(definicoes.OpenMenu_rect.centerx - 105, line.bottom + 3, 210, 25, definicoes.branco_ostra, "Yes", textoGold, definicoes.black)
def sell_func(): definicoes.screen.fill(definicoes.branco_ostra, definicoes.OpenMenu_rect) close_Menu = start.multi_box(definicoes.OpenMenu_rect.right - 20, definicoes.OpenMenu_rect.top, 20, 20, definicoes.vermelho, "Yes", "X", definicoes.white) buy = start.multi_box(definicoes.OpenMenu_rect.centerx - 70, definicoes.OpenMenu_rect.top + 3, 70, 40, definicoes.vermelho, "Yes", "BUY", definicoes.white) start.multi_box(definicoes.OpenMenu_rect.centerx + 5, definicoes.OpenMenu_rect.top + 3, 70, 40, definicoes.vermelho, "Yes", "SELL", definicoes.white) line = pygame.draw.line(definicoes.screen, definicoes.vermelho, (definicoes.OpenMenu_rect.left, buy.bottom + 5), (definicoes.OpenMenu_rect.right, buy.bottom + 5), 5) qtd_dinheiro(line) linhas = 0 itens_rect = [] if (len(definicoes.inventario) / 5) < 1: linhas = 1 else: linhas = len(definicoes.inventario) / 5 for x in range(0, linhas, 1): for y in range(0, len(definicoes.inventario), 1): j = pygame.draw.rect(definicoes.screen, definicoes.cinza, (definicoes.OpenMenu_rect.centerx - (y * 32), definicoes.OpenMenu_rect.centery - (x * 32), 38, 38)) itens_rect.append(j) var = [] #poem a imagem do itens na tela for keys in definicoes.inventario: var.append(keys) texto_sell(itens_rect, var) sair_exit = False sair = False buyBol = False while not sair_exit: mouse = pygame.mouse.get_pos() for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() if event.type == pygame.MOUSEBUTTONDOWN: for loop_inv in range(0, len(itens_rect), 1): if itens_rect[loop_inv].collidepoint(mouse): nome_iten = var[loop_inv] defIten = definicoes.stats[nome_iten] textoIten = defIten["nome"] + " --- Valor: " + str( defIten["compra"]) rect_texto_iten_inv = start.multi_box( definicoes.OpenMenu_rect.left, definicoes.OpenMenu_rect.bottom - 30, 200, 30, definicoes.branco_ostra, "Yes", textoIten, definicoes.black) venda = start.multi_box( rect_texto_iten_inv.right + 10, definicoes.OpenMenu_rect.bottom - 30, 90, 30, definicoes.vermelho, "Yes", "Vender", definicoes.white) try: if venda.collidepoint(mouse): statsIten = definicoes.stats[nome_iten] if definicoes.inventario[nome_iten] > 0: definicoes.playerDict["moedas"] += statsIten[ "compra"] definicoes.inventario[nome_iten] -= 1 if definicoes.inventario[nome_iten] == 0: del definicoes.inventario[nome_iten] texto_sell(itens_rect, var) qtd_dinheiro(line) except: print "erro vender iten" if buy.collidepoint(mouse): sair_exit = True buyBol = True elif close_Menu.collidepoint(mouse): sair_exit = True sair = True map_loader.load_tela(definicoes.playerDict["LARG"], definicoes.playerDict["LALT"]) player.player_load() definicoes.clock.tick(5) pygame.display.update() return close_Menu, sair, buyBol
def imprimir_menu(): inventario_Loop = 0 Iten_Menu = [] descricao_Menu = {} all_rects = {} #tela do menu definicoes.screen.fill(definicoes.cinza_claro, definicoes.OpenMenu_rect) #texto na parte superior do inventario descricao_tela = start.multi_box(definicoes.OpenMenu_rect.left, definicoes.OpenMenu_rect.top, definicoes.OpenMenu_rect.width, 20, definicoes.branco_ostra, "Yes", "Status / Inventario") #botao de fechar close_Menu = start.multi_box(definicoes.OpenMenu_rect.right - 20, definicoes.OpenMenu_rect.top, 20, 20, definicoes.vermelho, "Yes", "X", definicoes.white) #box geral dos status barra_status = start.multi_box(definicoes.OpenMenu_rect.right - 195, descricao_tela.bottom + 10, 180, 75, definicoes.branco_ostra, "no") barra_status_lvl = start.multi_box(barra_status.left + 20, barra_status.top, 140, 25, definicoes.branco_ostra, "Yes", ("Lv: " + str(definicoes.playerDict["level"])), definicoes.cinza_escuro) #barra de progresso de exp player.atualiza_lvl("pedra") texto_next_xp = "Exp: " + str(definicoes.playerDict["exp"]) um_por_cento = (definicoes.playerDict["exp"] + definicoes.playerDict["expProxLVL"]) / 140.0 barra = definicoes.playerDict["exp"] / um_por_cento barra_status_xp_full = start.multi_box(barra_status.left + 20, barra_status.top + 50, 140, 25, definicoes.cinza, "no") barra_status_xp_next = start.multi_box(barra_status.left + 20, barra_status.top + 50, barra, 25, definicoes.vermelho, "no") texto_tela_next_xp = start.input_text(texto_next_xp, (barra_status.left + 20 + (140 / 2)), (barra_status.top + 50 + (25 / 2)), definicoes.branco_ostra, "sim") #status do jogado ex: hp, att, def texto_vida = "HP: " + str(definicoes.playerDict["TVida"]) + " / " + str(definicoes.playerDict["Vida"]) um_por_cento_vida = definicoes.playerDict["Vida"] / 100.0 barra_vida = definicoes.playerDict["TVida"] / um_por_cento_vida barraVidaFull = start.multi_box(definicoes.OpenMenu_rect.left + 20, descricao_tela.bottom + 20, 100, 25, definicoes.branco_ostra, "no") barra_status_vida = start.multi_box(definicoes.OpenMenu_rect.left + 20, descricao_tela.bottom + 20, barra_vida, 25, definicoes.vermelho, "no") texto_tela_vida = start.input_text(texto_vida, (barra_status_vida.left + (100 / 2)), (descricao_tela.bottom + 20 + (25 / 2)), definicoes.cinza_escuro, "sim") texto_att = "ATT: " + str(definicoes.playerDict["Ataque"]) att_tela = start.input_text(texto_att, (definicoes.OpenMenu_rect.left + 20 + (100 / 2)), (barra_status_vida.bottom + 12.5), definicoes.cinza_escuro, "sim") texto_def = "DEF: " + str(definicoes.playerDict["Defesa"]) def_tela = start.input_text(texto_def, (definicoes.OpenMenu_rect.left + 20 + (100 / 2)), (barra_status_vida.bottom + 37.5), definicoes.cinza_escuro, "sim") texto_ganhou = "Lutas Ganhas: " + str(definicoes.playerDict["Ganhou"]) ganhou_tela = start.input_text(texto_ganhou, (definicoes.OpenMenu_rect.left + 20 + (100 / 2)), (barra_status_vida.bottom + 62.5), definicoes.cinza_escuro, "sim") #skills ############################################################################################## boxSkill = start.multi_box(definicoes.OpenMenu_rect.left + 10, (barra_status_vida.bottom + 80), 270,((definicoes.OpenMenu_rect.bottom - 20) - (barra_status_vida.bottom + 73)), definicoes.branco_ostra, "no") SkillText = start.input_text("SKILLS", ((boxSkill.width / 2) + (definicoes.OpenMenu_rect.left + 10)), (boxSkill.top + 15), definicoes.vermelho, "sim") #Trabalho com pedra textoPedra = "Pedra LV: " + str(definicoes.playerDict["pedraLV"]) XPumPC = ((definicoes.playerDict["pedraXP"] + definicoes.playerDict["pedraXpProx"]) + 1) / 120.0 barraXP = definicoes.playerDict["pedraXP"] / XPumPC barraPedraFull = start.multi_box(boxSkill.left + 10, (boxSkill.top + 30), 120, 25, definicoes.cinza_claro, "no") barraPedraXP = start.multi_box(boxSkill.left + 10, (boxSkill.top + 30), barraXP, 25, definicoes.vermelho, "no") barraTextoPedra = start.input_text(textoPedra, (barraPedraXP.left + 60), (barraPedraFull.top + 12.5), definicoes.branco_ostra, "sim") #Trabalho com madeira textoMadeira = "Madeira LV: " + str(definicoes.playerDict["madeiraLV"]) XPumPCMadeira = ((definicoes.playerDict["madeiraXP"] + definicoes.playerDict["madeiraXpProx"]) + 1) / 120.0 MadeiraBarraXP = definicoes.playerDict["madeiraXP"] / XPumPCMadeira barraMadeiraFull = start.multi_box((boxSkill.left + 10), (barraPedraFull.bottom + 3), 120, 25, definicoes.cinza_claro, "no") barraMadeiraXP = start.multi_box((boxSkill.left + 10), (barraPedraFull.bottom + 3), MadeiraBarraXP, 25, definicoes.vermelho, "no") barraTextoMadeira = start.input_text(textoMadeira, (barraMadeiraXP.left + 60), (barraMadeiraFull.top + 12.5), definicoes.branco_ostra, "sim") #fim box skill ####################################################################################### #localizacao dos itens tamanho = 42 tamanho_BAG = 5 for l in range(0, tamanho_BAG, 1): for j in range(0, tamanho_BAG, 1): j = pygame.draw.rect(definicoes.screen, definicoes.marron, ((definicoes.OpenMenu_rect.right - ((tamanho_BAG * tamanho) - (tamanho * j))), (definicoes.OpenMenu_rect.bottom - ((tamanho_BAG * tamanho) - (tamanho * l))), tamanho, tamanho)) Iten_Menu.append(j) #imprime a quantia de dinheiro do player textoGold = "GOLD: " + str(definicoes.playerDict["moedas"]) gold = start.multi_box(definicoes.OpenMenu_rect.right - 210, Iten_Menu[0].top - 27, 210, 25, definicoes.branco_ostra, "Yes", textoGold, definicoes.amarelo_ocre) #iten no menu se existir algum try: for keys in definicoes.inventario: load_menu_iten(keys, inventario_Loop, Iten_Menu) descricao_Menu[keys] = Iten_Menu[inventario_Loop] inventario_Loop += 1 except: print "erro: sem itens no inventario ou erro na criacao dos itens no menu" all_rects = {"descricao_tela": descricao_tela, "close_Menu": close_Menu, "barra_status": barra_status, "barra_status_lvl": barra_status_lvl, "barra_status_xp_next": barra_status_xp_next, "barra_status_vida": barra_status_vida, } pygame.display.update() return all_rects, descricao_Menu