def __init__(self): self.telamenu = TelaMenu() self.aplcadastrarjogador = AplCadastrarJogador() self.lopcoes = ["LOGIN:"******"SENHA:"] self.nomecorrente = [] self.nome = "" self.posicaoimprimenome = self.POSICAO_INICIAL_DADOS
def __init__(self): self.apljogo = AplJogo() self.telajogo = Tela() self.aplcadastrarjogador = AplCadastrarJogador() self.fabricaimagens = FlyweightFabrica() self.imagempersonagem = self.get_imagem("personagem.png") self.posicaotela = EstiloElementos.posicao_imagem_fundo() self.fundojogo = "fundojogo2.png" self.music = False self.continuarjogo = True
def __init__(self): self.telamenu = TelaMenu() self.aplcadastrarjogador = AplCadastrarJogador() self.lopcoes = ["LOGIN:"******"SENHA:"] self.nomecorrente = [] self.nome = "" self.posicaoimprimenome = 270
class ControladorRanking: TAMFONTETEXTO = 35 POSICAOXNOME = 105 POSICAOXPONTUACAO = 480 ESPACAMENTONOMES = 43 POSICAOYLINHA = 188 def __init__(self): self.telamenu = TelaMenu() self.aplcadjog = AplCadastrarJogador() @staticmethod def get_imagem(nomeimagem): return pygame.image.load(os.path.join(CaminhoRecursos.caminho_imagens(), nomeimagem)) def exibir_tela_ranking(self): imagem = self.get_imagem("telaranking.png") self.telamenu.exibe_imagem(imagem, EstiloElementos.posicao_imagem_fundo()) def imprimir_ranking(self, lrecordes): posicaoylinha = self.POSICAOYLINHA for linha in lrecordes: self.telamenu.exibe_texto(str(linha[0]), self.TAMFONTETEXTO, Posicao(self.POSICAOXNOME, posicaoylinha)) self.telamenu.exibe_texto(str(linha[1]), self.TAMFONTETEXTO, Posicao(self.POSICAOXPONTUACAO, posicaoylinha)) posicaoylinha += self.ESPACAMENTONOMES def retorna_ranking(self): self.exibir_tela_ranking() lrecordes = self.aplcadjog.buscar_ranking() self.imprimir_ranking(lrecordes) pygame.display.flip()
class ControladorLogin(ControladorCadastro): def __init__(self): self.telamenu = TelaMenu() self.aplcadastrarjogador = AplCadastrarJogador() self.lopcoes = ["LOGIN:"******"SENHA:"] self.nomecorrente = [] self.nome = "" self.posicaoimprimenome = 270 def enviar_dados_jogador(self, ldadosjogador): if self.aplcadastrarjogador.validar_login(ldadosjogador): return True else: return False
class ControladorJogo: TAM_FONTE_TEXTO = 35 TAM_FONTE_NUMERO = 40 TAMANHOFONTEGAMEOVER = 40 DESLOCAMENTO_TELA = 5 POSICAO_TROCA_TELA = -500 INTERVALOMOEDAS = 70 INTERVALOESQUELETOS = 234 VELOCIDADEBONUS = 11 def __init__(self): self.apljogo = AplJogo() self.telajogo = Tela() self.aplcadastrarjogador = AplCadastrarJogador() self.fabricaimagens = FlyweightFabrica() self.imagempersonagem = self.get_imagem("personagem.png") self.posicaotela = EstiloElementos.posicao_imagem_fundo() self.fundojogo = "fundojogo2.png" self.music = False self.continuarjogo = True @staticmethod def get_obstaculo(nomeobstaculo): return pygame.image.load(os.path.join(CaminhoRecursos.caminho_imagens_obstaculos(), nomeobstaculo)) @staticmethod def get_imagem(nomeimagem): return pygame.image.load(os.path.join(CaminhoRecursos.caminho_imagens(), nomeimagem)) @staticmethod def get_musica(nomemusica): return os.path.join(CaminhoRecursos.caminho_musicas(), nomemusica) @staticmethod def get_som(nomesom): return os.path.join(CaminhoRecursos.caminho_sons(), nomesom) def exibir_tela_jogo(self): imagem = self.get_imagem(self.fundojogo) self.telajogo.exibe_imagem(imagem, self.posicaotela) self.anda_tela() def anda_tela(self): self.posicaotela.eixox -= self.DESLOCAMENTO_TELA if self.posicaotela.eixox == self.POSICAO_TROCA_TELA: self.posicaotela.eixox = 0 def exibir_vidas(self): for numvida in range(self.apljogo.personagem.vida): imagem = self.get_imagem("vida.png") self.telajogo.exibe_texto("Vida", self.TAM_FONTE_TEXTO, EstiloElementos.posicao_texto_vida()) self.telajogo.exibe_imagem(imagem, EstiloElementos.get_posicao_vida(numvida)) def exibir_pontuacao(self): self.telajogo.exibe_texto(str(self.apljogo.pontos), self.TAM_FONTE_NUMERO, EstiloElementos.posicao_numero_pontuacao() ) self.telajogo.exibe_texto("Pontuação", self.TAM_FONTE_TEXTO, EstiloElementos.posicao_texto_pontuacao()) def exibir_pontuacao_moedas(self): self.fabricaimagens.get_flyweight("moeda").desenhar_imagem(EstiloElementos.posicao_desenho_moeda()) self.telajogo.exibe_texto("Bônus", self.TAM_FONTE_TEXTO, EstiloElementos.posicao_texto_bonus()) self.telajogo.exibe_texto(str(self.apljogo.qtdmoedas)+" / "+str(self.apljogo.valor_alcance_bonus), self.TAM_FONTE_NUMERO, EstiloElementos.posicao_numero_bonus()) def exibir_fim_de_jogo(self): self.posicaotela.eixox = 0 imagem = self.get_imagem("gameover.png") self.telajogo.exibe_imagem(imagem, EstiloElementos.posicao_imagem_fundo()) self.telajogo.exibe_texto("Parabéns! Você fez %s pontos"%str(self.apljogo.pontos), self.TAMANHOFONTEGAMEOVER, EstiloElementos.posicao_mensagem_gameover()) pygame.display.flip() def exibir_musica(self, musica): self.telajogo.exibe_musica(CaminhoRecursos.caminho_musicas(), musica) # exibe moedas e esqueletos na tela def exibir_bonus(self, lista, intervalo): self.auxbonusanterior = lista[0].posicaox - (intervalo + 1) for bonus in lista: if ((bonus.posicaox - self.auxbonusanterior) > intervalo) or ((bonus.posicaox - self.auxbonusanterior) < 0): bonus.decrementa_posicao_x(self.VELOCIDADEBONUS) if bonus.ehtangivel: self.fabricaimagens.get_flyweight(bonus.nome).desenhar_imagem(bonus.define_posicao()) else: break self.auxbonusanterior = bonus.posicaox if bonus.posicaox <= 0: bonus.restaura_posicao() def constroi_jogo_evolucao(self): self.fabricaimagens.get_flyweight("peixemoto").desenhar_imagem(self.apljogo.personagem.posicao) self.exibir_bonus(self.lesqueletos, self.INTERVALOESQUELETOS) if not self.music: self.music = True self.exibir_musica(self.apljogo.personagem.musicaatual) self.verifica_colisao_bonus(self.lesqueletos) self.fundojogo = "fundojogonegro2.png" def constroi_jogo_original(self): self.fabricaimagens.get_flyweight("personagem").desenhar_imagem(self.apljogo.personagem.posicao) self.exibir_bonus(self.lmoedas, self.INTERVALOMOEDAS) self.verifica_colisao_bonus(self.lmoedas) self.fundojogo = "fundojogo2.png" def exibir_personagem(self): if self.apljogo.personagem.estado == EstadoPersonagem.normal: self.constroi_jogo_original() else: self.constroi_jogo_evolucao() def atualiza_tela(self): self.exibir_tela_jogo() self.exibir_personagem() for obstaculo in self.apljogo.lobstaculos: self.fabricaimagens.get_flyweight(obstaculo.nome).desenhar_imagem(obstaculo.posicao) self.exibir_pontuacao() self.exibir_vidas() self.exibir_pontuacao_moedas() # o jogo volta ao estado original (sem motoqueiro) def restaura_estado_jogo(self): self.apljogo.personagemmemento.restaura_estado() self.music = False self.exibir_musica(self.apljogo.personagem.musicaatual) # verifica se o personagem colidiu com algum obstaculo marinho def verifica_colisao_obstaculo(self): for obstaculo in self.apljogo.lobstaculos: imagemobstaculo = self.get_obstaculo(obstaculo.nome + ".png") if self.apljogo.testa_colisao_personagem_obstaculo(self.imagempersonagem, imagemobstaculo, obstaculo): self.telajogo.exibe_som(self.get_som(obstaculo.somcolisao)) if self.apljogo.personagem.estado == EstadoPersonagem.normal: self.apljogo.penaliza_jogador() else: self.restaura_estado_jogo() self.restaura_posicao_esqueletos() def colidiu_esqueleto(self, objeto): self.telajogo.exibe_som(self.get_som(objeto.somcolisao)) self.restaura_estado_jogo() self.restaura_posicao_esqueletos() def capturou_moeda(self, objeto): self.telajogo.exibe_som(self.get_som(objeto.somcolisao)) self.apljogo.qtdmoedas += 1 # verifica se houve colisao do personagem com uma moeda ou um esqueleto def verifica_colisao_bonus(self, lista): for objeto in lista: imagem = self.get_imagem(objeto.imagem) if self.apljogo.testa_colisao_personagem_bonus(self.imagempersonagem, imagem, objeto): if objeto.nome == "moeda": self.capturou_moeda(objeto) else: self.colidiu_esqueleto(objeto) break # inicializa a posicao de todos os esqueletos def restaura_posicao_esqueletos(self): for esqueleto in self.lesqueletos: esqueleto.restaura_posicao() # a classe ControlodorJogo (q eh um observador)recebe atualização pq a classe Observada ObservableEventosTeclado capturou um evento def update(self, observable): if observable.cima: self.apljogo.personagem.diminui_deslocamento() elif observable.soltoubaixo: self.apljogo.personagem.aumenta_deslocamento() elif (observable.enter) and (self.apljogo.fimdejogo): self.continuarjogo = False def inicializa_observable(self): observable = ObservableEventosTeclado() observable.add_observer(self) return observable def jogo(self, jogador): observable = self.inicializa_observable() self.exibir_musica(self.apljogo.personagem.musicaatual) self.apljogo.configuracao() self.lmoedas = self.apljogo.cria_bloco_bonus(11, "moeda") self.lesqueletos = self.apljogo.cria_bloco_bonus(3, "esqueleto") continua = True while continua: observable.verifica_evento() self.apljogo.jogar() self.atualiza_tela() self.verifica_colisao_obstaculo() if self.apljogo.fimdejogo: for moeda in self.lmoedas: moeda.ehtangivel = False self.aplcadastrarjogador.cadastrar_pontuacao(jogador, self.apljogo.pontos) self.exibir_fim_de_jogo() continua = self.continuarjogo music.stop()
class ControladorCadastro: TAMANHO_LETRA_DADOS = 24 POSICAOX_LETRA_DADOS = 225 POSICAO_INICIAL_DADOS = 270 INCREMENTA_ESPACAMENTO = 40 TAMANHO_PALAVRA = 20 def __init__(self): self.telamenu = TelaMenu() self.aplcadastrarjogador = AplCadastrarJogador() self.lopcoes = ["LOGIN:"******"SENHA:"] self.nomecorrente = [] self.nome = "" self.posicaoimprimenome = self.POSICAO_INICIAL_DADOS @staticmethod def get_imagem(nomeimagem): return pygame.image.load(os.path.join(CaminhoRecursos.caminho_imagens(), nomeimagem)) def exibe_tela_informar_dados(self): imagem = self.get_imagem("teladigitadados.png") self.telamenu.exibe_imagem(imagem, EstiloElementos.posicao_imagem_fundo()) pygame.display.flip() def exibe_tela_mensagem_cadastro(self, mensagem): imagemtelamensagem = self.get_imagem("telamensagem.png") self.telamenu.exibe_imagem(imagemtelamensagem, EstiloElementos.posicao_imagem_fundo()) self.telamenu.exibe_mensagem_cadastro(mensagem, EstiloElementos.posicao_mensagem_cadastro()) pygame.display.flip() @staticmethod def get_key(): while True: event = pygame.event.poll() if event.type == KEYDOWN: return event.key def imprime_nome(self, dado, posicaoy): self.nome = "" for i in range(len(dado)): self.nome = self.nome + dado[i] self.telamenu.exibe_texto_dados(self.nome, self.TAMANHO_LETRA_DADOS, Posicao(self.POSICAOX_LETRA_DADOS, posicaoy)) pygame.display.flip() def enviar_dados_jogador(self, ldadosjogador): return self.aplcadastrarjogador.cadastrar_jogador(ldadosjogador) def atualiza_entrada(self, ldadosjogador): self.exibe_tela_informar_dados() posicaoy = self.POSICAO_INICIAL_DADOS for dado in ldadosjogador: self.imprime_nome(dado, posicaoy) posicaoy += self.INCREMENTA_ESPACAMENTO def cadastro(self): ldadosjogador = [] while True: self.tecla = self.get_key() if self.tecla == K_RETURN or self.tecla == K_TAB: ldadosjogador.append(self.nome) self.nome = "" self.nomecorrente = [] if len(ldadosjogador) == len(self.lopcoes): self.posicaoimprimenome = self.POSICAO_INICIAL_DADOS return self.enviar_dados_jogador(ldadosjogador) else: self.posicaoimprimenome = self.posicaoimprimenome + self.INCREMENTA_ESPACAMENTO elif self.tecla == K_BACKSPACE: if len(self.nomecorrente) > 0: self.nomecorrente.pop(-1) ldadosjogador.append(self.nomecorrente) self.atualiza_entrada(ldadosjogador) ldadosjogador.pop(-1) elif self.tecla == K_ESCAPE: return [] elif self.tecla <= 127 and len(self.nomecorrente) < self.TAMANHO_PALAVRA: self.nomecorrente.append(chr(self.tecla)) self.imprime_nome(self.nomecorrente, self.posicaoimprimenome)
def __init__(self): self.telamenu = TelaMenu() self.aplcadjog = AplCadastrarJogador()
class ControladorJogo: TAM_FONTE_TEXTO = 35 TAM_FONTE_NUMERO = 40 TAMANHOFONTEGAMEOVER = 40 DESLOCAMENTO_TELA = 5 POSICAO_TROCA_TELA = -500 INTERVALOMOEDAS = 70 INTERVALOESQUELETOS = 234 VELOCIDADEBONUS = 11 def __init__(self): self.apljogo = AplJogo() self.telajogo = Tela() self.aplcadastrarjogador = AplCadastrarJogador() self.fabricaimagens = FlyweightFabrica() self.imagempersonagem = self.get_imagem("personagem.png") self.posicaotela = EstiloElementos.posicao_imagem_fundo() self.fundojogo = "fundojogo2.png" self.music = False self.continuarjogo = True @staticmethod def get_obstaculo(nomeobstaculo): return pygame.image.load( os.path.join(CaminhoRecursos.caminho_imagens_obstaculos(), nomeobstaculo)) @staticmethod def get_imagem(nomeimagem): return pygame.image.load( os.path.join(CaminhoRecursos.caminho_imagens(), nomeimagem)) @staticmethod def get_musica(nomemusica): return os.path.join(CaminhoRecursos.caminho_musicas(), nomemusica) @staticmethod def get_som(nomesom): return os.path.join(CaminhoRecursos.caminho_sons(), nomesom) def exibir_tela_jogo(self): imagem = self.get_imagem(self.fundojogo) self.telajogo.exibe_imagem(imagem, self.posicaotela) self.anda_tela() def anda_tela(self): self.posicaotela.eixox -= self.DESLOCAMENTO_TELA if self.posicaotela.eixox == self.POSICAO_TROCA_TELA: self.posicaotela.eixox = 0 def exibir_vidas(self): for numvida in range(self.apljogo.personagem.vida): imagem = self.get_imagem("vida.png") self.telajogo.exibe_texto("Vida", self.TAM_FONTE_TEXTO, EstiloElementos.posicao_texto_vida()) self.telajogo.exibe_imagem( imagem, EstiloElementos.get_posicao_vida(numvida)) def exibir_pontuacao(self): self.telajogo.exibe_texto(str(self.apljogo.pontos), self.TAM_FONTE_NUMERO, EstiloElementos.posicao_numero_pontuacao()) self.telajogo.exibe_texto("Pontuação", self.TAM_FONTE_TEXTO, EstiloElementos.posicao_texto_pontuacao()) def exibir_pontuacao_moedas(self): self.fabricaimagens.get_flyweight("moeda").desenhar_imagem( EstiloElementos.posicao_desenho_moeda()) self.telajogo.exibe_texto("Bônus", self.TAM_FONTE_TEXTO, EstiloElementos.posicao_texto_bonus()) self.telajogo.exibe_texto( str(self.apljogo.qtdmoedas) + " / " + str(self.apljogo.valor_alcance_bonus), self.TAM_FONTE_NUMERO, EstiloElementos.posicao_numero_bonus()) def exibir_fim_de_jogo(self): self.posicaotela.eixox = 0 imagem = self.get_imagem("gameover.png") self.telajogo.exibe_imagem(imagem, EstiloElementos.posicao_imagem_fundo()) self.telajogo.exibe_texto( "Parabéns! Você fez %s pontos" % str(self.apljogo.pontos), self.TAMANHOFONTEGAMEOVER, EstiloElementos.posicao_mensagem_gameover()) pygame.display.flip() def exibir_musica(self, musica): self.telajogo.exibe_musica(CaminhoRecursos.caminho_musicas(), musica) # exibe moedas e esqueletos na tela def exibir_bonus(self, lista, intervalo): self.auxbonusanterior = lista[0].posicaox - (intervalo + 1) for bonus in lista: if ((bonus.posicaox - self.auxbonusanterior) > intervalo) or ( (bonus.posicaox - self.auxbonusanterior) < 0): bonus.decrementa_posicao_x(self.VELOCIDADEBONUS) if bonus.ehtangivel: self.fabricaimagens.get_flyweight( bonus.nome).desenhar_imagem(bonus.define_posicao()) else: break self.auxbonusanterior = bonus.posicaox if bonus.posicaox <= 0: bonus.restaura_posicao() def constroi_jogo_evolucao(self): self.fabricaimagens.get_flyweight("peixemoto").desenhar_imagem( self.apljogo.personagem.posicao) self.exibir_bonus(self.lesqueletos, self.INTERVALOESQUELETOS) if not self.music: self.music = True self.exibir_musica(self.apljogo.personagem.musicaatual) self.verifica_colisao_bonus(self.lesqueletos) self.fundojogo = "fundojogonegro2.png" def constroi_jogo_original(self): self.fabricaimagens.get_flyweight("personagem").desenhar_imagem( self.apljogo.personagem.posicao) self.exibir_bonus(self.lmoedas, self.INTERVALOMOEDAS) self.verifica_colisao_bonus(self.lmoedas) self.fundojogo = "fundojogo2.png" def exibir_personagem(self): if self.apljogo.personagem.estado == EstadoPersonagem.normal: self.constroi_jogo_original() else: self.constroi_jogo_evolucao() def atualiza_tela(self): self.exibir_tela_jogo() self.exibir_personagem() for obstaculo in self.apljogo.lobstaculos: self.fabricaimagens.get_flyweight(obstaculo.nome).desenhar_imagem( obstaculo.posicao) self.exibir_pontuacao() self.exibir_vidas() self.exibir_pontuacao_moedas() # o jogo volta ao estado original (sem motoqueiro) def restaura_estado_jogo(self): self.apljogo.personagemmemento.restaura_estado() self.music = False self.exibir_musica(self.apljogo.personagem.musicaatual) # verifica se o personagem colidiu com algum obstaculo marinho def verifica_colisao_obstaculo(self): for obstaculo in self.apljogo.lobstaculos: imagemobstaculo = self.get_obstaculo(obstaculo.nome + ".png") if self.apljogo.testa_colisao_personagem_obstaculo( self.imagempersonagem, imagemobstaculo, obstaculo): self.telajogo.exibe_som(self.get_som(obstaculo.somcolisao)) if self.apljogo.personagem.estado == EstadoPersonagem.normal: self.apljogo.penaliza_jogador() else: self.restaura_estado_jogo() self.restaura_posicao_esqueletos() def colidiu_esqueleto(self, objeto): self.telajogo.exibe_som(self.get_som(objeto.somcolisao)) self.restaura_estado_jogo() self.restaura_posicao_esqueletos() def capturou_moeda(self, objeto): self.telajogo.exibe_som(self.get_som(objeto.somcolisao)) self.apljogo.qtdmoedas += 1 # verifica se houve colisao do personagem com uma moeda ou um esqueleto def verifica_colisao_bonus(self, lista): for objeto in lista: imagem = self.get_imagem(objeto.imagem) if self.apljogo.testa_colisao_personagem_bonus( self.imagempersonagem, imagem, objeto): if objeto.nome == "moeda": self.capturou_moeda(objeto) else: self.colidiu_esqueleto(objeto) break # inicializa a posicao de todos os esqueletos def restaura_posicao_esqueletos(self): for esqueleto in self.lesqueletos: esqueleto.restaura_posicao() # a classe ControlodorJogo (q eh um observador)recebe atualização pq a classe Observada ObservableEventosTeclado capturou um evento def update(self, observable): if observable.cima: self.apljogo.personagem.diminui_deslocamento() elif observable.soltoubaixo: self.apljogo.personagem.aumenta_deslocamento() elif (observable.enter) and (self.apljogo.fimdejogo): self.continuarjogo = False def inicializa_observable(self): observable = ObservableEventosTeclado() observable.add_observer(self) return observable def jogo(self, jogador): observable = self.inicializa_observable() self.exibir_musica(self.apljogo.personagem.musicaatual) self.apljogo.configuracao() self.lmoedas = self.apljogo.cria_bloco_bonus(11, "moeda") self.lesqueletos = self.apljogo.cria_bloco_bonus(3, "esqueleto") continua = True while continua: observable.verifica_evento() self.apljogo.jogar() self.atualiza_tela() self.verifica_colisao_obstaculo() if self.apljogo.fimdejogo: for moeda in self.lmoedas: moeda.ehtangivel = False self.aplcadastrarjogador.cadastrar_pontuacao( jogador, self.apljogo.pontos) self.exibir_fim_de_jogo() continua = self.continuarjogo music.stop()
class ControladorCadastro: def __init__(self): self.telamenu = TelaMenu() self.aplcadastrarjogador = AplCadastrarJogador() self.lopcoes = ["LOGIN:"******"SENHA:"] self.nomecorrente = [] self.nome = "" self.posicaoimprimenome = 270 def exibe_tela_informar_dados(self): alteraposicao = 0 for id, opcao in enumerate(self.lopcoes): self.telamenu.exibe_texto_menu(opcao, 40, (0,0,0), Posicao(105, 25 + alteraposicao)) pygame.draw.rect(self.telamenu.tela, (255, 255, 255), (220, 270 + alteraposicao, 300, 30), 0) alteraposicao = alteraposicao + 40 self.telamenu.exibe_texto_menu("CONFIRMAR", 40, (0,0,0),Posicao(302, 120)) pygame.display.flip() @staticmethod def get_key(): while 1: event = pygame.event.poll() if event.type == KEYDOWN: return event.key def imprime_nome(self): tela = self.telamenu.tela self.nome = "" for i in range(len(self.nomecorrente)): self.nome = self.nome + self.nomecorrente[i] fonte = pygame.font.SysFont("ARIAL", 24, False, False) texto = fonte.render(self.nome, True, (0, 0, 0)) tela.blit(texto, (225, self.posicaoimprimenome)) pygame.display.flip() def enviar_dados_jogador(self, ldadosjogador): if self.aplcadastrarjogador.cadastrar_jogador(ldadosjogador): return True else: return False def cadastro(self): ldadosjogador = [] while True: tecla = self.get_key() if tecla == K_RETURN: ldadosjogador.append(self.nome) self.nome = "" self.nomecorrente = [] if len(ldadosjogador) == len(self.lopcoes): self.posicaoimprimenome = 270 if self.enviar_dados_jogador(ldadosjogador): return True else: return False else: self.posicaoimprimenome = self.posicaoimprimenome + 40 elif tecla <= 127: self.nomecorrente.append(chr(tecla)) self.imprime_nome()
class TelaCadastro: POSICAO_SUBMIT = Posicao(302, 120) COR_PRETO = (0, 0, 0) COR_BRANCO = (255, 255, 255) TAMANHO_LETRA_MENU = 40 TAMANHO_LETRA_DADOS = 24 POSICAOX_LETRA_DADOS = 225 POSICAO_INICIAL_DADOS = 270 POSICAOX_OPCAO_MENU = 105 POSICAOY_INICIAL_OPCAO_MENU = 25 INCREMENTA_ESPACAMENTO = 40 def __init__(self): self.telamenu = TelaMenu() self.aplcadastrarjogador = AplCadastrarJogador() self.lopcoes = ["LOGIN:"******"SENHA:"] self.nomecorrente = [] self.nome = "" self.posicaoimprimenome = self.POSICAO_INICIAL_DADOS def exibe_tela_informar_dados(self): espacamentovertical = 0 for id, opcao in enumerate(self.lopcoes): self.telamenu.exibe_texto_menu(opcao, self.TAMANHO_LETRA_MENU, self.COR_PRETO, Posicao(self.POSICAOX_OPCAO_MENU, self.POSICAOY_INICIAL_OPCAO_MENU + espacamentovertical)) pygame.draw.rect(self.telamenu.tela, self.COR_BRANCO, (220, 270 + espacamentovertical, 300, 30), 0) espacamentovertical = espacamentovertical + self.INCREMENTA_ESPACAMENTO self.telamenu.exibe_texto_menu("CONFIRMAR", self.TAMANHO_LETRA_MENU, self.COR_PRETO, self.POSICAO_SUBMIT) pygame.display.flip() @staticmethod def get_key(): while 1: event = pygame.event.poll() if event.type == KEYDOWN: return event.key def imprime_nome(self): tela = self.telamenu.tela self.nome = "" for i in range(len(self.nomecorrente)): self.nome = self.nome + self.nomecorrente[i] fonte = pygame.font.SysFont("Arial", self.TAMANHO_LETRA_DADOS, False, False) texto = fonte.render(self.nome, True, self.COR_PRETO) tela.blit(texto, (self.POSICAOX_LETRA_DADOS, self.posicaoimprimenome)) pygame.display.flip() def enviar_dados_jogador(self, ldadosjogador): return self.aplcadastrarjogador.cadastrar_jogador(ldadosjogador) def cadastro(self): ldadosjogador = [] while True: tecla = self.get_key() if tecla == K_RETURN: ldadosjogador.append(self.nome) self.nome = "" self.nomecorrente = [] if len(ldadosjogador) == len(self.lopcoes): self.posicaoimprimenome = self.POSICAO_INICIAL_DADOS return self.enviar_dados_jogador(ldadosjogador) else: self.posicaoimprimenome = self.posicaoimprimenome + self.INCREMENTA_ESPACAMENTO elif tecla <= 127: self.nomecorrente.append(chr(tecla)) self.imprime_nome()