def teste_status(self): fase = Fase() porcos = [PorcoFake(1, 1) for _ in range(2)] passaros = [PassaroFake(1, 1) for _ in range(2)] fase.adicionar_porco(*porcos) fase.adicionar_passaro(*passaros) self.assertEqual(EM_ANDAMENTO, fase.status()) for ator in porcos + passaros: ator.status = DESTRUIDO self.assertEqual( VITORIA, fase.status(), 'Sem porcos ativos o jogo deveria terminar com ' 'vitória') fase.adicionar_obstaculo(ObstaculoFake()) self.assertEqual(VITORIA, fase.status(), 'Obstáculo não interfere para definir vitória') porco = PorcoFake() fase.adicionar_porco(porco) self.assertEqual( DERROTA, fase.status(), 'Com Porco ativo e sem pássaro para lançar, o jogo ' 'deveria acabar em derrota') fase.adicionar_passaro(PassaroFake()) self.assertEqual( EM_ANDAMENTO, fase.status(), 'Com Porco ativo e com pássaro para lançar, o jogo ' 'não deveria acabar') porco.status = DESTRUIDO self.assertEqual(VITORIA, fase.status(), 'Sem porco ativo, o jogo deveria acabar com vitória')
def teste_status(self): fase = Fase() porcos = [Porco(1, 1) for i in range(2)] passaros = [PassaroAmarelo(1, 1) for i in range(2)] fase.adicionar_porco(*porcos) fase.adicionar_passaro(*passaros) self.assertEqual('Jogo em andamento.', fase.status(0)) self.assertEqual('Jogo em andamento.', fase.status(2.9)) self.assertEqual('Jogo em andamento.', fase.status(3)) for passaro, porco in zip(passaros, porcos): passaro.colidir(porco, 3) self.assertEqual('Jogo em andamento.', fase.status(0)) self.assertEqual('Jogo em andamento.', fase.status(2.9)) self.assertEqual('Jogo em encerrado. Você ganhou!', fase.status(3), 'Sem porcos ativos o jogo deveria terminar com vitória') fase.adicionar_obstaculo(Obstaculo()) self.assertEqual('Jogo em encerrado. Você ganhou!', fase.status(3), 'Obstáculo não interfere para definir vitória') porco = Porco() fase.adicionar_porco(porco) self.assertEqual('Jogo em encerrado. Você perdeu!', fase.status(3), 'Com Porco ativo e sem pássaro para lançar, o jogo deveria acabar em derrota') fase.adicionar_passaro(PassaroAmarelo()) self.assertEqual('Jogo em andamento.', fase.status(3), 'Com Porco ativo e com pássaro para lançar, o jogo não deveria acabar') porco.colidir(porco, 3) self.assertEqual('Jogo em encerrado. Você ganhou!', fase.status(3), 'Sem porco ativo, o jogo deveria acabar com vitória')
def teste_acabou_com_porcos_e_passaros(self): fase = Fase() porcos = [Porco(1, 1) for i in range(2)] # criando 2 porcos passaros = [PassaroAmarelo(1, 1) for i in range(2)] # criando 2 pássaros fase.adicionar_porco(*porcos) fase.adicionar_passaro(*passaros) self.assertEqual(EM_ANDAMENTO, fase.status) # colidindo cada passaro com um porco no tempo 3 for passaro, porco in zip(passaros, porcos): passaro.colidir(porco, 3) self.assertEqual(VITORIA, fase.status) fase.adicionar_obstaculo(Obstaculo()) self.assertEqual(VITORIA, fase.status, 'Obstáculo não interfere no fim do jogo') fase.adicionar_porco(Porco()) self.assertEqual( DERROTA, fase.status, 'Com Porco ativo e sem pássaro para lançar, o jogo deveria acabar') fase.adicionar_passaro(PassaroAmarelo()) self.assertEqual( EM_ANDAMENTO, fase.status, 'Com Porco ativo e com pássaro para lançar, o jogo não deveria acabar' )
def teste_status(self): fase = Fase() porcos = [Porco(1, 1) for i in range(2)] passaros = [PassaroAmarelo(1, 1) for i in range(2)] fase.adicionar_porco(*porcos) fase.adicionar_passaro(*passaros) self.assertEqual(EM_ANDAMENTO, fase.status()) for passaro, porco in zip(passaros, porcos): passaro.colidir(porco, 3) self.assertEqual(VITORIA, fase.status(), 'Sem porcos ativos o jogo deveria terminar com vitória') fase.adicionar_obstaculo(Obstaculo()) self.assertEqual(VITORIA, fase.status(), 'Obstáculo não interfere para definir vitória') porco = Porco() fase.adicionar_porco(porco) self.assertEqual(DERROTA, fase.status(), 'Com Porco ativo e sem pássaro para lançar, o jogo deveria acabar em derrota') fase.adicionar_passaro(PassaroAmarelo()) self.assertEqual(EM_ANDAMENTO, fase.status(), 'Com Porco ativo e com pássaro para lançar, o jogo não deveria acabar') porco.colidir(porco, 3) self.assertEqual(VITORIA, fase.status(), 'Sem porco ativo, o jogo deveria acabar com vitória')
def teste_acabou_com_porcos_e_passaros(self): fase = Fase() porcos = [PorcoFake(1, 1) for _ in range(2)] # criando 2 porcos passaros = [PassaroFake(1, 1) for _ in range(2)] # criando 2 pássaros fase.adicionar_porco(*porcos) fase.adicionar_passaro(*passaros) self.assertEqual(EM_ANDAMENTO, fase.status()) for ator in porcos + passaros: ator.status = DESTRUIDO self.assertEqual(VITORIA, fase.status()) fase.adicionar_obstaculo(Obstaculo()) self.assertEqual(VITORIA, fase.status(), 'Obstáculo não interfere no fim do jogo') fase.adicionar_porco(PorcoFake()) self.assertEqual( DERROTA, fase.status(), 'Com Porco ativo e sem pássaro para lançar, o jogo ' 'deveria acabar') fase.adicionar_passaro(PassaroFake()) self.assertEqual( EM_ANDAMENTO, fase.status(), 'Com Porco ativo e com pássaro para lançar, o jogo ' 'não deveria acabar')
def teste_acabou_com_porcos_e_passaros(self): fase = Fase() porcos = [Porco(1, 1) for i in range(2)] # criando 2 porcos passaros = [PassaroAmarelo(1, 1) for i in range(2)] # criando 2 pássaros fase.adicionar_porco(*porcos) fase.adicionar_passaro(*passaros) self.assertFalse(fase.acabou(0)) self.assertFalse(fase.acabou(2.9)) self.assertFalse(fase.acabou(3)) # colidingo cada passaro com um porco no tempo 3 for passaro, porco in zip(passaros, porcos): passaro.colidir(porco, 3) self.assertFalse(fase.acabou(0)) self.assertFalse(fase.acabou(2.9)) self.assertTrue(fase.acabou(3)) fase.adicionar_obstaculo(Obstaculo()) self.assertTrue(fase.acabou(3), 'Obstáculo não interfere no fim do jogo') fase.adicionar_porco(Porco()) self.assertTrue(fase.acabou(3), 'Com Porco ativo e sem pássaro para lançar, o jogo deveria acabar') fase.adicionar_passaro(PassaroAmarelo()) self.assertFalse(fase.acabou(3), 'Com Porco ativo e com pássaro para lançar, o jogo não deveria acabar')
def __init__(self): self.__fase_atual = Fase(-1, None, self.DUMMY_FUNDO, [], [], [], [], "no_img") self.__fs = FabricaFases() self.__ge = GerenciadorEntidade(self, self.__fs, self.__fase_atual) self.__lista_fases = [] self.__lista_fases_original = []
def teste_adicionar_passaro(self): fase = Fase() self.assertListEqual([], fase._passaros) passaro = PassaroVermelho() fase.adicionar_passaro(passaro) self.assertListEqual([passaro], fase._passaros) passaro1, passaro2 = PassaroVermelho(), PassaroAmarelo() fase.adicionar_passaro(passaro1, passaro2) self.assertListEqual([passaro, passaro1, passaro2], fase._passaros)
def teste_adicionar_porco(self): fase = Fase() self.assertListEqual([], fase._porcos) porco = Porco() fase.adicionar_porco(porco) self.assertListEqual([porco], fase._porcos) porco1, porco2 = Porco(), Porco() fase.adicionar_porco(porco1, porco2) self.assertListEqual([porco, porco1, porco2], fase._porcos)
def teste_adicionar_obstaculo(self): fase = Fase() self.assertListEqual([], fase._obstaculos) obstaculo = Obstaculo() fase.adicionar_obstaculo(obstaculo) self.assertListEqual([obstaculo], fase._obstaculos) obstaculo1, obstaculo2 = Obstaculo(), Obstaculo() fase.adicionar_obstaculo(obstaculo1, obstaculo2) self.assertListEqual([obstaculo, obstaculo1, obstaculo2], fase._obstaculos)
def teste_intervalo_de_colisao_padrão(self): ''' Método que testa se o intervalo de colisão da Fase é repassado aos atores. Padrão de intervalo é 1 ''' fase = Fase() passaro = PassaroAmarelo(1, 1) fase.adicionar_passaro(passaro) porco = Porco(2, 2) fase.adicionar_porco(porco) fase.calcular_pontos(0) self.assertEqual(DESTRUIDO, passaro.status) self.assertEqual(DESTRUIDO, porco.status)
def teste_lancar_passaro_sem_erro_quando_nao_existe_passaro(self): passaros = [PassaroFake(1, 1) for _ in range(2)] fase = Fase() fase.adicionar_passaro(*passaros) self.assertFalse(passaros[0].foi_lancado()) self.assertFalse(passaros[1].foi_lancado()) fase.lancar(90, 1) fase.lancar(45, 3) fase.lancar(31, 5) # testando que lançar passaros depios de todos lançados não causa erro self.assertTrue(passaros[0].foi_lancado()) self.assertTrue(passaros[1].foi_lancado())
def criar_fase_exemplo(multiplicador=1): fase_exemplo = Fase(1 if multiplicador == 1 else 32) passaros = [PassaroVermelho(3 * multiplicador, 3 * multiplicador), PassaroAmarelo(3 * multiplicador, 3 * multiplicador), PassaroAmarelo(3 * multiplicador, 3 * multiplicador)] porcos = [Porco(78 * multiplicador, multiplicador), Porco(70 * multiplicador, multiplicador)] obstaculos = [Obstaculo(31 * multiplicador, 10 * multiplicador)] fase_exemplo.adicionar_passaro(*passaros) fase_exemplo.adicionar_porco(*porcos) fase_exemplo.adicionar_obstaculo(*obstaculos) return fase_exemplo
def teste_intervalo_de_colisao_nao_padrao(self): ''' Método que testa se o intervalo de colisão da Fase é repassado aos atores. valor testado: 31 ''' fase = Fase(30) passaro = PassaroFake(1, 1) fase.adicionar_passaro(passaro) porco = PorcoFake(31, 31) fase.adicionar_porco(porco) fase.calcular_pontos(0) self.assertEqual(30, passaro.intervalo_colisao) self.assertEqual(30, porco.intervalo_colisao)
def __init__(self): self.__pontuacao = PontuacaoController() self.__tela = Tela() # Fase 1 self.__bg_1 = pygame.image.load("Materials/AnimatedStreet.png").convert(self.__tela.display) self.__linha_img = pygame.image.load("Materials/AnimatedStreet_Element.png").convert(self.__tela.display) self.__linha1 = BGElement([115, -53], [self.__linha_img]) self.__linha2 = BGElement([230, -53], [self.__linha_img]) self.__linha3 = BGElement([115, 292], [self.__linha_img]) self.__linha4 = BGElement([230, 292], [self.__linha_img]) self.__fase1 = Fase(self.__bg_1, [self.__linha1, self.__linha2, self.__linha3, self.__linha4]) self.__fases = [self.__fase1] self.__fase = 0 self.__fase_atual = self.__fases[self.__fase]
def teste_lancar_passaro_sem_erro_quando_nao_existe_passaro(self): passaros = [PassaroFake(1, 1) for _ in range(2)] # cria os passaros fase = Fase() fase.adicionar_passaro(*passaros) # certifica-se de que o método .foi_lancado() retorna False self.assertFalse(passaros[0].foi_lancado()) self.assertFalse(passaros[1].foi_lancado()) fase.lancar(90, 1) # lança o primeiro passaro fase.lancar(45, 3) # lança o segundo passaro fase.lancar( 31, 5) # testando que lançar passaros depois de todos (2 passaros) # lançados não causa erro # verifica se o método .foi_lancado() retorna True self.assertTrue(passaros[0].foi_lancado()) self.assertTrue(passaros[1].foi_lancado())
def criar_fase_exemplo(): fase_exemplo = Fase() passaros = [PassaroVermelho(3, 3), PassaroAmarelo(3, 3), PassaroAmarelo(3, 3)] porcos = [Porco(78, 1), Porco(70, 1)] obstaculos = [Obstaculo(31, 10)] fase_exemplo.adicionar_passaro(*passaros) fase_exemplo.adicionar_porco(*porcos) fase_exemplo.adicionar_obstaculo(*obstaculos) fase_exemplo.lancar(45, 1) fase_exemplo.lancar(63, 3) fase_exemplo.lancar(23, 4) for i in range(86): fase_exemplo.calcular_pontos(i / 10) return fase_exemplo
def teste_intervalo_de_colisao_padrao(self): ''' Método que testa se o intervalo de colisão da Fase é repassado aos atores. Padrão de intervalo é 1 ''' fase = Fase() passaro = PassaroFake(1, 1) fase.adicionar_passaro(passaro) porco = PorcoFake(2, 2) fase.adicionar_porco(porco) fase.calcular_pontos(0) self.assertTrue(passaro.colidir_executado) self.assertTrue(porco.colidir_executado) self.assertTrue(passaro.calcular_posicao_executado) self.assertTrue(passaro.colidir_com_chao_executado) self.assertEqual(1, passaro.intervalo_colisao) self.assertEqual(1, porco.intervalo_colisao)
def teste_lancar_passaro_sem_erro_quando_nao_existe_passaro(self): passaro_vermelho, passaro_amarelo = PassaroVermelho(1, 1), PassaroAmarelo(1, 1) fase = Fase() fase.adicionar_passaro(passaro_vermelho, passaro_amarelo) self.assertFalse(passaro_vermelho.foi_lancado()) self.assertFalse(passaro_amarelo.foi_lancado()) fase.lancar(90, 1) fase.lancar(45, 3) fase.lancar(31, 5) # testando que lançar passaros depios de todos lançados não causa erro self.assertTrue(passaro_vermelho.foi_lancado()) self.assertEqual(math.radians(90), passaro_vermelho._angulo_de_lancamento) self.assertEqual(1, passaro_vermelho._tempo_de_lancamento) self.assertTrue(passaro_amarelo.foi_lancado()) self.assertEqual(math.radians(45), passaro_amarelo._angulo_de_lancamento) self.assertEqual(3, passaro_amarelo._tempo_de_lancamento)
def novo_jogo(self, data=None): if self.mapa_atual+1 > len(self.mapas): print("Nao a proxima fase") self.statusBar.place_forget() self.mapa.place_forget() self['bg'] = CORES['bg'] self.status = "zerou" self.ativar_popUp(1) else: self.status = "jogando" self.menu_ops.place_forget() self.fase = Fase(self.mapas[self.mapa_atual], self, data) self.configurar_partida() self.render(self.fase.mapa) self.fase.getItens() self.label_player = self.sprites.criar_player(self.mapa) self.posi_obj_dinamicos()
def teste_acabou_sem_porcos(self): fase = Fase() self.assertTrue(fase.acabou(0))
# -*- coding: utf-8 -*- from atores import PassaroVermelho, PassaroAmarelo, Porco, Obstaculo from fase import Fase import placa_grafica fase_exemplo = Fase() passaros = [PassaroVermelho(3, 3), PassaroAmarelo(3, 3), PassaroAmarelo(3, 3)] porcos = [Porco(78, 1), Porco(70, 1)] obstaculos = [Obstaculo(31, 10)] fase_exemplo.adicionar_passaro(*passaros) fase_exemplo.adicionar_porco(*porcos) fase_exemplo.adicionar_obstaculo(*obstaculos) # Solução para ganhar # fase_exemplo.lancar(45, 1) # fase_exemplo.lancar(63, 3) # fase_exemplo.lancar(23, 4) if __name__ == '__main__': placa_grafica.animar(fase_exemplo)
# -*- coding: utf-8 -*- from os import path import sys import math project_dir = path.dirname(__file__) project_dir = path.join('..') sys.path.append(project_dir) from atores import PassaroAmarelo, PassaroVermelho, Obstaculo, Porco from fase import Fase from placa_grafica_tkinter import rodar_fase from random import randint if __name__ == '__main__': fase = Fase(intervalo_de_colisao=32) # Adicionar Pássaros Amarelos for i in range(80): fase.adicionar_passaro(PassaroAmarelo(30, 30)) # Obstaculos theta = 270 h = 12 k = 7 step = 32 r = 50 while theta < 480:
def teste_acabou_sem_porcos(self): fase = Fase() self.assertEqual(VITORIA, fase.status())
def ejecutarJuego(self): # Creamos la escena con la animacion antes de jugar pygame.mixer.music.stop() escena = Fase(self.director, 'fase1Oleada1') self.director.apilarEscena(escena)
def criar_fase(self, linha): plataformas = [] moedas = [] energias = [] inimigos = [] cor = (65, 65, 65) fundo = pygame.Surface((800, 600)) fundo.fill(cor) jogador = None _id = 0 for i in linha: i = i.split(":") if i[0] == "plataforma": i = i[1].split("|") print(i) plataformas.append( Plataforma(float(i[0]), float(i[1]), float(i[2]), float(i[3]), float(i[4]), float(i[5]), float(i[6]), parse_tuple(i[7]), i[8])) elif i[0] == "plataforma_andante": i = i[1].split("|") print(i) plataformas.append( PlataformaAndante(float(i[0]), float(i[1]), float(i[2]), float(i[3]), float(i[4]), float(i[5]), float(i[6]), parse_tuple(i[7]), parse_tuple(i[8]), float(i[9]), parse_tuple(i[10]), i[11])) elif i[0] == "energia": i = i[1].split("|") print(i) energias.append( Energia(float(i[0]), float(i[1]), float(i[2]), float(i[3]), float(i[4]), float(i[5]), float(i[6]), parse_bool(i[7]), parse_tuple(i[8]), i[9])) elif i[0] == "inimigo": i = i[1].split("|") print(i) inimigos.append( Inimigo(float(i[0]), float(i[1]), float(i[2]), float(i[3]), float(i[4]), float(i[5]), float(i[6]), parse_bool(i[7]), float(i[8]), parse_bool(i[9]), parse_tuple(i[10]), i[11], i[12])) elif i[0] == "jogador": i = i[1].split("|") jogador = Jogador(float(i[0]), float(i[1]), float(i[2]), float(i[3]), float(i[4]), float(i[5]), float(i[6]), parse_tuple(i[7]), i[8]) elif i[0] == "moeda": i = i[1].split("|") moedas.append( Moeda(float(i[0]), float(i[1]), float(i[2]), float(i[3]), float(i[4]), float(i[5]), float(i[6]), parse_tuple(i[7]), i[8])) elif i[0] == "cor": cor = parse_tuple(i[1]) fundo.fill(cor) elif i[0] == "fundo": caminho_fundo = i[1] elif i[0] == "fase_indice": _id = int(i[1]) if caminho_fundo != "no_img": fundo = pygame.image.load("../Imagens/" + caminho_fundo).convert_alpha() return Fase(_id, jogador, fundo, plataformas, moedas, energias, inimigos, cor)
__author__ = 'jmorais' try: from fase import Fase except Exception as e: print('require module exception: %s' % e) exit(0) """ Starting Fase(...).execute() make possible the communication between the micro services. simple: python core.py """ Fase(sender_endpoint='ipc:///tmp/sender', receiver_endpoint='ipc:///tmp/receiver').execute()
# Inicializamos el módulo para los sonidos y cargamos la música de fondo pygame.mixer.pre_init(44100, 16, 2, 512) pygame.mixer.init() if MUSIC_ON: ResourcesManager.LoadMusic('background_music.ogg') # Reproducimos la música de forma que se repite continuamente pygame.mixer.music.play(-1) # Creamos el director director = Director() if DEBUG: # Creamos la escena con el nivel a depurar scene = Fase(director, DEBUG_FASE_NUM) director.game_level = DEBUG_FASE_NUM else: # Creamos la escena con el menú principal scene = MenuPrincipal(director) # Le decimos al director que apile esta escena director.stackScene(scene) # Y ejecutamos el juego director.execute() if MUSIC_ON: # Paramos la reproducción de música pygame.mixer.music.stop() # Cuando se termine la ejecución, finaliza la librería pygame.quit()
def eventos(self, e): if e.type == pygame.MOUSEBUTTONUP and e.button == 1: self.arrastando_entidade = False if e.type == pygame.MOUSEBUTTONDOWN and e.button == 2: self.camera_mov_x += self.pos[0] self.camera_mov_y += self.pos[1] if e.type == pygame.MOUSEBUTTONUP and e.button == 2: self.camera_mov_x -= self.pos[0] self.camera_mov_y -= self.pos[1] if e.type == pygame.MOUSEBUTTONUP and e.button == 3: entidade = self.pegar_entidade_cursor() if entidade: nomes = entidade.get_nomes() param = multenterbox(msg=entidade.__class__.__name__, title='Editor de atributos', fields=(nomes)) if param: entidade.setar_atributos(param) else: nomes = ["ID", "Cor", "Imagem Fundo"] param = multenterbox(msg="Fase", title='Editor de atributos', fields=(nomes)) if param: self.fase.setar_atributos(param) if e.type == pygame.KEYDOWN: if e.key == pygame.K_DELETE: entidade = self.pegar_entidade_cursor() if entidade: self.entidades.remove(entidade) self.fase.remover(entidade) mods = pygame.key.get_mods() if mods & pygame.KMOD_CTRL: # get_mods para poder pegar o evento de duas teclas pressionadas (e.g CTRL + NUMPAD1/2/3/4) if mods & pygame.KMOD_SHIFT and e.key == pygame.K_s: if self.arquivo_atual: self.ff.salvar_arquivo("Fases/" + self.arquivo_atual, self.fase) print("Salvo!") else: msgbox("Nenhum arquivo foi aberto!", "Erro") elif e.key == pygame.K_s: if self.fase.get_id() == -1: _id = enterbox("Digite o id da fase!") if _id: self.fase.set_id(_id) else: return arquivo = enterbox("Digite o nome do arquivo a ser salvo!") if arquivo: self.arquivo_atual = arquivo self.ff.salvar_arquivo("Fases/" + self.arquivo_atual, self.fase) if e.key == pygame.K_1: jogador = Jogador(400, 420, 30, 30, 0.0, 0.0, 2.3, (0, 25, 125), "no_img") self.entidades.append(jogador) self.fase.set_jogador(jogador) elif e.key == pygame.K_2: plataforma = Plataforma(0, 570, 800, 30, 0.0, 0.0, 0.0, (10, 10, 15), "no_img") self.entidades.append(plataforma) self.fase.adicionar_plataforma(plataforma) elif e.key == pygame.K_3: plataforma = PlataformaAndante(400, 300, 100, 30, 0, 0, 0.5, (100, 200), (0, 0), 0.0, (200, 0, 150), "no_img") self.entidades.append(plataforma) self.fase.adicionar_plataforma(plataforma) elif e.key == pygame.K_4: energia = Energia(400, 240, 20, 30, 0, 0, 0.0, True, (255, 255, 125), "no_img") self.entidades.append(energia) self.fase.adicionar_energia(energia) elif e.key == pygame.K_5: moeda = Moeda(300, 510, 10, 10, 0, 0, 0.0, (255, 100, 10), "no_img") self.entidades.append(moeda) self.fase.adicionar_moeda(moeda) elif e.key == pygame.K_6: inimigo = Inimigo(170, 540, 30, 30, 0, 0, 2.0, True, 25.0, False, (0, 25, 125), "canon.png", "gold_bullet.png") self.entidades.append(inimigo) self.fase.adicionar_inimigo(inimigo) elif e.key == pygame.K_l: arquivo = enterbox( "Digite o nome do arquivo a ser carregado!") if arquivo: self.arquivo_atual = arquivo ret = self.gf.iniciar(self.arquivo_atual) if ret: ret = ret[:] self.entidades = ret[0] self.fase = ret[1] else: msgbox("Arquivo não existente ou corrompido!", "Erro") elif e.key == pygame.K_c: entidade = self.pegar_entidade_cursor() if entidade: self.entidade_copia = self.copiar_entidade(entidade) elif e.key == pygame.K_v: if self.entidade_copia: self.entidade_copia.x = self.pos[ 0] - self.camera.x - self.entidade_copia.w / 2 self.entidade_copia.y = self.pos[ 1] - self.camera.y - self.entidade_copia.h / 2 clone = self.copiar_entidade(self.entidade_copia) self.entidades.append(clone) self.fase.adicionar(clone) elif mods & pygame.KMOD_SHIFT and e.key == pygame.K_f: if self.arquivo_atual: copy2("Fases/" + self.arquivo_atual, "../Projeto/Fases") print("Arquivo enviado!") else: msgbox("Nenhum arquivo para ser enviado!", "Erro") elif e.key == pygame.K_f: nome = enterbox("Digite o nome do arquivo a enviado!") if nome: copy2("Fases/" + nome, "../Projeto/Fases") elif mods & pygame.KMOD_SHIFT and e.key == pygame.K_b: if self.arquivo_atual: self.ff.salvar_arquivo("Fases/" + self.arquivo_atual, self.fase) print("Salvo!") copy2("Fases/" + self.arquivo_atual, "../Projeto/Fases") print("Arquivo enviado!") Popen("python jogo.py", cwd="../Projeto/Codigo/", shell=True) else: msgbox("Nenhum arquivo aberto ou salvo!", "Erro") elif e.key == pygame.K_b: Popen("python jogo.py", cwd="../Projeto/Codigo/", shell=True) elif e.key == pygame.K_n: self.entidades = [] self.fase = Fase(-1, None, self.dummy_fundo, [], [], [], [], "no_img") self.arquivo_atual = ""