Example #1
0
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()
Example #2
0
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)
Example #3
0
 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
Example #4
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()
Example #6
0
 def __init__(self, nomeimagem):
     self.imagem = Imagem(nomeimagem)
     self.telajogo = TelaJogo()