class Controlador(): def __init__(self): pygame.init() self.apljogo = AplJogo() self.telajogo = TelaJogo() self.telamenu = TelaMenu() self.caminhoimagem = (os.getcwd()).replace("principal",os.path.join("recursos","imagem")) self.xtela = 0 def exibir_tela_jogo(self): self.telajogo.exibe_imagem(self.caminhoimagem, "fundo8.png", Posicao(self.xtela,0)) self.xtela -= 5 if self.xtela == -500: self.xtela = 0 def exibir_personagem(self, posicao): imagem = self.telajogo.exibe_imagem(self.caminhoimagem, "peixa.png", posicao) rect = imagem.get_rect().move(posicao.eixox, posicao.eixoy) return rect def exibir_obstaculo(self, posicao): imagem = self.telajogo.exibe_imagem(self.caminhoimagem, "peixeespada.png", posicao) rect = imagem.get_rect().move(posicao.eixox, posicao.eixoy) return rect def exibir_vida(self, x, y): self.telajogo.exibe_imagem(self.caminhoimagem, "vida.png", Posicao(x,y)) def exibir_pontuacao(self, pontos): self.telajogo.exibe_texto("Score: "+str(pontos), 40, [10,50]) def exibir_fim_de_jogo(self): self.telajogo.exibe_texto("Game Over", 75, [200,250]) self.xtela = 0 def controla_vida(self): x = 0 for auxvida in range(self.apljogo.personagem.vida): self.exibir_vida(x, 0) x += 40 def jogo(self): self.apljogo.config() while True: self.apljogo.jogar() self.exibir_tela_jogo() rect1 = self.exibir_personagem(self.apljogo.personagem.posicao) rect2 = self.exibir_obstaculo(self.apljogo.obstaculo.posicao) rect3 = self.exibir_obstaculo(self.apljogo.obstaculo2.posicao) self.apljogo.verifica_colisao(rect1, rect2) self.apljogo.verifica_colisao(rect1, rect3) self.exibir_pontuacao(self.apljogo.pontos) self.controla_vida() if self.apljogo.fimdejogo == True: self.exibir_fim_de_jogo() pygame.quit()
class Sprite(): def __init__(self, nomeimagem): self.imagem = Imagem(nomeimagem) self.telajogo = TelaJogo() def desenhar_imagem(self, posicao): self.telajogo.exibe_imagem(self.imagem.carrega_imagem(), posicao)
def __init__(self): pygame.init() self.apljogo = AplJogo() self.telajogo = TelaJogo() self.telamenu = TelaMenu() self.caminhoimagem = (os.getcwd()).replace("principal", os.path.join("recursos", "imagem")) self.xtela = 0
def __init__(self): pygame.init() self.apljogo = AplJogo() self.telajogo = TelaJogo() self.imagempersonagem = self.get_imagem("peixa.png") self.posicaotela = EstiloElementos.posicao_imagem_fundo() self.entradas = EntradaUsuario()
class ControladorJogo: TAM_FONTE_PONTUACAO = 40 DESLOCAMENTO_TELA = 5 POSICAO_TROCA_TELA = -500 def __init__(self): pygame.init() self.apljogo = AplJogo() self.telajogo = TelaJogo() self.imagempersonagem = self.get_imagem("personagem.png") self.posicaotela = EstiloElementos.posicao_imagem_fundo() self.entradas = EntradaUsuario() self.fabricaimagens = FlyweightFabrica() @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("fundojogo.png") 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_imagem(imagem, EstiloElementos.get_posicao_vida(numvida)) def exibir_pontuacao(self, mensagem): self.telajogo.exibe_texto(mensagem + str(self.apljogo.pontos), self.TAM_FONTE_PONTUACAO, EstiloElementos.posicao_pontuacao()) def exibir_fim_de_jogo(self): imagem = self.get_imagem("gameover.png") self.telajogo.exibe_imagem(imagem, EstiloElementos.posicao_imagem_fundo()) self.posicaotela.eixox = 0 def exibir_mensagem(self, mensagem): self.telajogo.exibe_texto(mensagem, self.TAM_FONTE_PONTUACAO, EstiloElementos.posicao_mensagem()) def atualiza_tela(self): self.exibir_tela_jogo() self.fabricaimagens.get_flyweight("personagem").desenhar_imagem(self.apljogo.personagem.posicao) for obstaculo in self.apljogo.lobstaculos: self.fabricaimagens.get_flyweight(obstaculo.nome).desenhar_imagem(obstaculo.posicao) self.exibir_pontuacao("Score: ") self.exibir_vidas() def entrada_jogador(self): for event in pygame.event.get(): self.entradas.reset() if event.type == pygame.QUIT: self.entradas.quit_pressed = True if (event.type == pygame.KEYDOWN): if (event.key == pygame.K_SPACE): self.entradas.quit_pressed = True if (event.type == pygame.KEYDOWN): if (event.key == pygame.K_UP): self.apljogo.personagem.diminui_deslocamento() if (event.type == pygame.KEYUP): if (event.key == pygame.K_UP): self.apljogo.personagem.aumenta_deslocamento() pygame.key.set_repeat(1) def jogo(self): self.apljogo.configuracao() continua = True while continua: self.entrada_jogador() self.apljogo.jogar() self.atualiza_tela() for obstaculo in self.apljogo.lobstaculos: imagemobstaculo = self.get_obstaculo(obstaculo.nome + ".png") if self.apljogo.verifica_colisao_personagem(self.imagempersonagem, imagemobstaculo, obstaculo): self.apljogo.penaliza_jogador() som = self.get_som("colisao.wav") self.telajogo.exibe_som(som) if self.apljogo.fimdejogo: self.exibir_fim_de_jogo() if self.entradas.quit_pressed: exit(0) pygame.quit()
def __init__(self, nomeimagem): self.imagem = Imagem(nomeimagem) self.telajogo = TelaJogo()