def callCombate(): #adicionar efeito de combate, uma tela com acoes realizadas, #mostrar lucros do combate e vida na tela de status do player endCombat = False definicoes.monsterLife = 50 ataque, fugir = load_tela_combat() while not endCombat: mouse = pygame.mouse.get_pos() for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() if event.type == pygame.MOUSEBUTTONDOWN: if fugir.collidepoint(mouse): endCombat = True map_loader.load_tela(definicoes.playerDict["LARG"], definicoes.playerDict["LALT"]) player.player_load() if ataque.collidepoint(mouse): #criar uma funcao que chama todos os rects de status e monstros para atualizar texto na tela. definicoes.monsterATK = 5 status_batalha = ataqueFunc() ataque, fugir = load_tela_combat() if status_batalha == "end": endCombat = True map_loader.load_tela(definicoes.playerDict["LARG"], definicoes.playerDict["LALT"]) player.player_load() elif status_batalha == "game over": GM = pygame.image.load("GAME_OVER.png") definicoes.screen.fill(definicoes.white, definicoes.scr_rect) definicoes.screen.blit(GM, (0, 0)) definicoes.clock.tick(5) pygame.display.update()
def load(): sair = False buyBol = False sellBol = False buy, sell = print_tela() while not sair: mouse = pygame.mouse.get_pos() for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() if event.type == pygame.MOUSEBUTTONDOWN or (buyBol == True or sellBol == True): if buy.collidepoint(mouse) or buyBol == True: close_Menu, sair, sellBol = buy_func() buyBol = False elif sell.collidepoint(mouse) or sellBol == True: close_Menu, sair, buyBol = sell_func() sellBol = False try: if close_Menu.collidepoint(mouse): sair = True map_loader.load_tela(definicoes.playerDict["LARG"], definicoes.playerDict["LALT"]) player.player_load() except: print "erros close inn" definicoes.clock.tick(5) pygame.display.update()
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 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 new(): definicoes.screen.blit(new_game, (0, 0)) pygame.display.update() return_menu = multi_box(500, 400, 100, 25, definicoes.vermelho_claro, "sim", "Menu", definicoes.white) z = '' definicoes.nome = '' sair = False loop_texto = 0 while loop_texto == 0: for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() movimento = pygame.mouse.get_pos() if event.type == pygame.MOUSEMOTION: if return_menu.collidepoint(movimento): multi_box(500, 400, 100, 25, definicoes.vermelho, "sim", "Menu", definicoes.white) else: multi_box(500, 400, 100, 25, definicoes.vermelho_claro, "sim", "Menu", definicoes.white) if event.type == pygame.MOUSEBUTTONDOWN: if return_menu.collidepoint(movimento): definicoes.menu = 0 loop_texto += 1 menu_call() if event.type == pygame.KEYDOWN: z = pygame.key.name(event.key) if len(definicoes.nome) >= 8 or z == "return": sair = True loop_texto += 1 save(True) map_loader.load_tela() map_loader.load_menu() player.player_load() if z == "backspace": z1 = definicoes.nome[:-1] definicoes.nome = z1 multi_box(260, 200, 80, 30, definicoes.white, "sim", definicoes.nome, definicoes.black) if z == "error": multi_box(260, 200, 80, 30, definicoes.white, "sim", "não aceito", definicoes.black) if not sair and z != "backspace" and z != "error": definicoes.nome += z multi_box(260, 200, 80, 30, definicoes.white, "sim", definicoes.nome, definicoes.black)
def load(): selected = False loop_load = 0 filecatalogo = open("catalogo.txt", "r") filecatread = filecatalogo.readline(15) load_select = multi_box(185, 231, 100, 25, definicoes.vermelho_claro, "sim", filecatread[:-1], definicoes.white) return_menu = multi_box(500, 400, 100, 25, definicoes.vermelho_claro, "sim", "Menu", definicoes.white) while not selected: for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() movimento = pygame.mouse.get_pos() if event.type == pygame.MOUSEMOTION: if return_menu.collidepoint(movimento): multi_box(500, 400, 100, 25, definicoes.vermelho, "sim", "Menu", definicoes.white) if event.type == pygame.MOUSEBUTTONDOWN: if return_menu.collidepoint(movimento): definicoes.menu = 0 selected = True menu_call() if event.type == pygame.KEYDOWN: if event.key == pygame.K_UP: filecatalogo.close() filecatalogo = open("catalogo.txt", "r") if loop_load == 0: filecatread = filecatalogo.readline(15) else: for i in range(loop_load): filecatread = filecatalogo.readline(15) i += 1 multi_box(185, 231, 100, 25, definicoes.vermelho_claro, "sim", filecatread[:-1], definicoes.white) loop_load -= 1 else: filecatread = filecatalogo.readline(15) multi_box(185, 231, 100, 25, definicoes.vermelho_claro, "sim", filecatread[:-1], definicoes.white) loop_load += 1 movimento = pygame.mouse.get_pos() numeros = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] if event.type == pygame.MOUSEBUTTONDOWN: if load_select.collidepoint(movimento): nameLoad = "jogos\\" + filecatread[:-1] + ".txt" definicoes.nome = filecatread[:-1] Dict = json.load(open(nameLoad)) for keys in definicoes.playerDict: if keys not in Dict: Dict[keys] = definicoes.playerDict[keys] definicoes.playerDict = Dict definicoes.inventario = definicoes.playerDict["inventario"] selected = True map_loader.load_tela(definicoes.playerDict["LARG"], definicoes.playerDict["LALT"]) map_loader.load_menu() player.player_load_first() filecatalogo.close()
def menu_button(): close = False #sair do menu verf_ob = 0 all_rects, descricao_Menu = imprimir_menu() #acoes enquanto o menu estiver aberto while not close: mouse_pos = pygame.mouse.get_pos() x = mouse_pos[0] y = mouse_pos[1] pressed = pygame.mouse.get_pressed() for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() if event.type == pygame.MOUSEBUTTONDOWN: if all_rects["close_Menu"].collidepoint(mouse_pos): close = True map_loader.load_tela(definicoes.playerDict["LARG"], definicoes.playerDict["LALT"]) player.player_load() try: if usar.collidepoint(mouse_pos): itens_opt.opt_acao(qual_iten, "usar") qual_iten = 0 all_rects, descricao_Menu = imprimir_menu() if drop.collidepoint(mouse_pos): itens_opt.opt_acao(qual_iten, "drop") qual_iten = 0 all_rects, descricao_Menu = imprimir_menu() except: print "erro usar collide" #codigo para menu de opcoes botao direito if pressed == (0,0,1): #funcao que verifica qual iten clicado qual_iten = iten_press(mouse_pos, descricao_Menu) if qual_iten != 0: #funcao que cria menu com usar e dropar option_box, usar, drop = new_rect(x, y) verf_op = 1 try: #funcao que apaga a box com opcoes se mouse sair de cima if not option_box.collidepoint(mouse_pos): if verf_op == 1: #funcao que chama tela de menu novamente all_rects, descricao_Menu = imprimir_menu() verf_op = 0 except: print "erro no mouse_option not collide" #funcao que imprime a descricao na parte inferior da tela, ao lado do botao menu #print_descricao(mouse_pos, descricao_Menu) definicoes.clock.tick(10)