def __init__(self, ambiente, pos_x, pos_y): self.barra = [ambiente.image.load('imagens/barra/barra00.png'), ambiente.image.load('imagens/barra/barra01.png'), ambiente.image.load('imagens/barra/barra02.png'), \ ambiente.image.load('imagens/barra/barra03.png'), ambiente.image.load('imagens/barra/barra04.png'), ambiente.image.load('imagens/barra/barra05.png'), \ ambiente.image.load('imagens/barra/barra06.png'), ambiente.image.load('imagens/barra/barra07.png'), ambiente.image.load('imagens/barra/barra08.png'), \ ambiente.image.load('imagens/barra/barra09.png'), ambiente.image.load('imagens/barra/barra10.png'), ambiente.image.load('imagens/barra/barra11.png'), \ ambiente.image.load('imagens/barra/barra12.png'), ambiente.image.load('imagens/barra/barra13.png'), ambiente.image.load('imagens/barra/barra14.png'), \ ambiente.image.load('imagens/barra/barra15.png'), ambiente.image.load('imagens/barra/barra16.png'), ambiente.image.load('imagens/barra/barra17.png'), \ ambiente.image.load('imagens/barra/barra18.png'), ambiente.image.load('imagens/barra/barra19.png'), ambiente.image.load('imagens/barra/barra20.png'), \ ambiente.image.load('imagens/barra/barra21.png'), ambiente.image.load('imagens/barra/barra22.png'), ambiente.image.load('imagens/barra/barra23.png'), \ ambiente.image.load('imagens/barra/barra24.png'), ambiente.image.load('imagens/barra/barra25.png'), ambiente.image.load('imagens/barra/barra26.png'), \ ambiente.image.load('imagens/barra/barra27.png'), ambiente.image.load('imagens/barra/barra28.png'), ambiente.image.load('imagens/barra/barra29.png')] Objeto.__init__(self, ambiente, pos_x, pos_y, self.barra[0]) self.energia = 0 self.cont_img = 0 self.cont_img2 = 0
def disparar(self): minhaBala = Objeto('imagens\\balaouro.png') rect = self.get_rect() minhaBala.get_rect().centerx = rect.centerx minhaBala.get_rect().centery = rect.centery self.__disparos.append(minhaBala) self.__efeito.play()
def update_tubo(self, dt): x = 1100 y = randint(-450, -100) self.tubo_rate -= dt if self.tubo_rate <= 0: if self.programado == True: y = -275 self.programado = False self.tubos.append(Objeto(self.imagem_tubo, x, y)) self.tubos_inv.append( Objeto(self.imagem_tubo_invertido, x, y + 870)) if y < -400 or y > -150: self.programado = True self.tubo_rate += 3 if self.tubos[0].sprite.x <= -100: self.tubos.remove(self.tubos[0]) self.tubos_inv.remove(self.tubos_inv[0]) for tubo, tubo_inv in zip(self.tubos, self.tubos_inv): tubo.sprite.x += self.vel_fundo * dt tubo_inv.sprite.x += self.vel_fundo * dt for tubo, tubo_inv in zip(self.tubos, self.tubos_inv): if tubo.sprite.y < -500: tubo.vel_tubo = choice([30, 60, 90, 120, 150]) elif tubo.sprite.y > -50: tubo.vel_tubo = -choice([30, 60, 90, 120, 150])
def __init__(self,ambiente,vida,vel_x,vel_y,intervalo_ataque,\ pos_x,pos_y,image): Objeto.__init__(self, ambiente, pos_x, pos_y, image) self.cooldown_movimentacao = self.ambiente.time.get_ticks() self.vida = vida self.vel_x = vel_x self.vel_y = vel_y self.intervalo_ataque = intervalo_ataque
def __init__(self,ambiente,dano,vel_x,vel_y,pos_x,pos_y,forca,angulo=90): self.lanca = ambiente.image.load('imagens/lança1.png').convert_alpha() Objeto.__init__(self,ambiente,pos_x,pos_y,self.lanca) self.dano = dano self.vel_x = vel_x self.vel_y = vel_y self.angulo = angulo self.original_image = self.lanca self.lancamento = Lancamento(angulo,forca) self.lancamento.an = self.angulo self.lancamento.vel_0 = vel_x self.cd = self.ambiente.time.get_ticks()
def previa(self): self.nova_bola = self.bola_previa self.nova_bola.sprite.x = self.pos_seta[0] self.nova_bola.sprite.y = self.pos_seta[1] self.imagem_bola = pyglet.image.load(choice(self.cores)) self.imagem_bola.anchor_x = self.imagem_bola.width // 2 self.imagem_bola.anchor_y = self.imagem_bola.height // 2 self.bola_previa = Objeto(self.imagem_bola, self.pos_previa[0], self.pos_previa[1]) self.prev = False
def __init__(self, ambiente, imagem, posicao=Vetor(0, 0)): """ Neste metodo um objeto circular e criado :param ambiente: O ambiente pygame do jogo, que e usado para carregar a imagem :param imagem: O caminho da imagem do objeto :param posicao: A posicao inicial do objeto """ Objeto.__init__(self, ambiente, imagem, posicao) self._raio = self.imagem.get_width() / 2 self.posicao += Vetor(self._raio, self._raio)
def update_chao_fundo(self, dt): for chao in self.chaos: chao.sprite.x += self.vel_fundo * dt if self.chaos[-1].sprite.x < 0: self.chaos.remove(self.chaos[0]) self.chaos.append( Objeto(self.imagem_chao, self.chaos[-1].sprite.x + 2045, -75)) for fundo in self.fundos: fundo.sprite.x += self.vel_fundo * dt if self.fundos[-1].sprite.x < 0: self.fundos.remove(self.fundos[0]) self.fundos.append( Objeto(self.imagem_fundo, self.fundos[-1].sprite.x + 3084, 0))
def colocar_bolas(self): for y in range(5): for x in range(15): if (y + 1) % 2 == 0: if x == 0: continue cor = choice(self.cores) cor_1 = self.dicionario_cores[cor] self.im_bola = pyglet.image.load(cor) self.im_bola.anchor_x = self.imagem_bola.width // 2 self.im_bola.anchor_y = self.imagem_bola.height // 2 if y % 2 == 0: xi = 30 + (x * 60) else: xi = 30 + (x * 60) - (60 * cos((60 * pi) / 180)) yi = 870 - (y * 60 * sin((60 * pi) / 180)) self.bolas.append(Objeto(self.im_bola, xi, yi)) self.bolas[-1].parada = True self.bolas[-1].cor = cor_1 self.bolas[-1].inicial = True for bola in self.bolas: self.ver_conectados(bola)
def __init__(self,ambiente,pos_x,pos_y): self.cd_ready = ambiente.image.load('imagens/cd/ready.png').convert_alpha() self.cd = [ambiente.image.load('imagens/cd/cd_01.png'),ambiente.image.load( 'imagens/cd/cd_02.png'),\ ambiente.image.load('imagens/cd/cd_03.png'), ambiente.image.load('imagens/cd/cd_04.png'),\ ambiente.image.load('imagens/cd/cd_05.png'), ambiente.image.load('imagens/cd/cd_06.png'),\ ambiente.image.load('imagens/cd/cd_07.png'), ambiente.image.load('imagens/cd/cd_08.png'), \ ambiente.image.load('imagens/cd/cd_09.png'), ambiente.image.load('imagens/cd/cd_10.png'),\ ambiente.image.load('imagens/cd/cd_11.png'), ambiente.image.load('imagens/cd/cd_12.png'),\ ambiente.image.load('imagens/cd/cd_13.png'), ambiente.image.load('imagens/cd/cd_14.png'),\ ambiente.image.load('imagens/cd/cd_15.png'), ambiente.image.load('imagens/cd/cd_16.png'),\ ambiente.image.load('imagens/cd/cd_17.png'), ambiente.image.load('imagens/cd/cd_18.png'),\ ambiente.image.load('imagens/cd/cd_19.png')] Objeto.__init__(self,ambiente,pos_x,pos_y,self.cd_ready) self.cont_img = 0 self.ativo = False self.intervalo = self.ambiente.time.get_ticks()
def previa(self): self.nova_bola = self.bola_previa self.nova_bola.sprite.x = self.pos_seta[0] self.nova_bola.sprite.y = self.pos_seta[1] cor = choice(self.cores) cor_1 = self.dicionario_cores[cor] self.imagem_bola = pyglet.image.load(cor) self.imagem_bola.anchor_x = self.imagem_bola.width // 2 self.imagem_bola.anchor_y = self.imagem_bola.height // 2 self.bola_previa = Objeto(self.imagem_bola, self.pos_previa[0], self.pos_previa[1]) self.bola_previa.cor = cor_1 self.prev = False
def spawnObstaculo(self): posY = randint(40, self.telaAlt - 200) canoCima = Objeto(self.telaLarg, 0, "imagens/UGCano.png", "cano") canoCima.y = posY - canoCima.altura canoCima.velX = -5 canoBaixo = Objeto(self.telaLarg, 100, "imagens/DGCano.png", "cano") canoBaixo.y = canoCima.y + canoCima.altura + 160 canoBaixo.velX = -5 self.adicionarObjeto(canoCima) self.adicionarObjeto(canoBaixo)
def arquivoObjeto(self): self.filename = askopenfilename() if self.objeto: del self.objeto self.objeto = Objeto(self.filename) self.entradaArq.configure(state="normal") self.entradaArq.delete(0, END) self.entradaArq.insert(0, self.filename) self.entradaArq.configure(state="readonly") self.entradaArq.update()
def __init__(self, ambiente, dano, vel_x, vel_y, pos_x, pos_y, forca, angulo=90): Objeto.__init__(self, ambiente, pos_x, pos_y, imagens.lanca) self.dano = dano self.vel_x = vel_x self.vel_y = vel_y self.angulo = angulo print('angulo lanca: ' + str(self.angulo)) self.original_image = self.ambiente.image.load( imagens.lanca).convert_alpha() self.lancamento = Lancamento(angulo, forca) self.lancamento.an = self.angulo self.lancamento.vel_0 = vel_x
def __init__(self, ambiente, imagem, posicao=Vetor(0, 0), direcao=Vetor(0, 0), velocidade=0): """ Neste metodo um objeto movel e criado :param ambiente: O ambiente pygame do jogo, que e usado para carregar a imagem :param imagem: O caminho da imagem do objeto :param posicao: A posicao inicial do objeto :param direcao: A direcao inicial do objeto :param velocidade: A velocidade inicial do objeto """ Objeto.__init__(self, ambiente, imagem, posicao) self.direcao = direcao self.velocidade = velocidade
def adicionar_lista_objetos_vistos(novo_objeto, x, y): global lista_objetos_vistos nomes = novo_objeto.split("_", 1) if nomes[0] == "intercecao": # Evita que ao passar pela intercecao pelas duas direcoes que tenha nome diferente # Por exemplo: Corredor1_Quarto5 e Quarto5_Corredor1 divisoes = sorted(nomes[1].split("_", 1)) novo_objeto = f"intercecao_{divisoes[0]}_{divisoes[1]}" for objeto_visto in lista_objetos_vistos: if novo_objeto == objeto_visto.identificacao: return False lista_objetos_vistos.append(Objeto(novo_objeto, x, y)) return True
def test_casa3_proj_calculada(self): self.obj_casa3 = Objeto("./testes/casa3") self.pp_casa3 = ProjPerspectiva( PontoVista(5, 5, 3), PlanoProjecao([0, 0, 0], [1, 0, 0], [0, 1, 0]), self.obj_casa3) self.obj_projetado = self.pp_casa3.projetarObjeto() self.assertEqual(self.obj_projetado[0][0], 0) self.assertEqual(self.obj_projetado[0][1], -1.5) self.assertEqual(self.obj_projetado[0][2], -6.5) self.assertEqual(self.obj_projetado[0][3], -12.5) self.assertEqual(self.obj_projetado[0][4], -7.5) self.assertEqual(self.obj_projetado[0][5], -18) self.assertEqual(self.obj_projetado[0][6], 32) self.assertEqual(self.obj_projetado[0][7], 50) self.assertEqual(self.obj_projetado[0][8], 50) self.assertEqual(self.obj_projetado[0][9], 0) self.assertEqual(self.obj_projetado[1][0], 0) self.assertEqual(self.obj_projetado[1][1], 0) self.assertEqual(self.obj_projetado[1][2], -5) self.assertEqual(self.obj_projetado[1][3], -5) self.assertEqual(self.obj_projetado[1][4], 0) self.assertEqual(self.obj_projetado[1][5], 0) self.assertEqual(self.obj_projetado[1][6], 50) self.assertEqual(self.obj_projetado[1][7], 50) self.assertEqual(self.obj_projetado[1][8], 41) self.assertEqual(self.obj_projetado[1][9], -9) self.assertEqual(self.obj_projetado[2][0], 0) self.assertEqual(self.obj_projetado[2][1], 0) self.assertEqual(self.obj_projetado[2][2], 0) self.assertEqual(self.obj_projetado[2][3], 0) self.assertEqual(self.obj_projetado[2][4], 0) self.assertEqual(self.obj_projetado[2][5], 0) self.assertEqual(self.obj_projetado[2][6], 0) self.assertEqual(self.obj_projetado[2][7], 0) self.assertEqual(self.obj_projetado[2][8], 0) self.assertEqual(self.obj_projetado[2][9], 0) self.assertEqual(self.obj_projetado[0][0], -3) self.assertEqual(self.obj_projetado[0][1], -3) self.assertEqual(self.obj_projetado[0][2], -4) self.assertEqual(self.obj_projetado[0][3], -4) self.assertEqual(self.obj_projetado[0][4], -3) self.assertEqual(self.obj_projetado[0][5], -3) self.assertEqual(self.obj_projetado[0][6], 7) self.assertEqual(self.obj_projetado[0][7], 7) self.assertEqual(self.obj_projetado[0][8], 7) self.assertEqual(self.obj_projetado[0][9], -3)
def reset(self, altura, largura): self.score = 0 self.objetos = [] self.deletar = [] self.start = False self.time = 0 self.haJogadores = True self.telaAlt = altura self.telaLarg = largura fundo = Objeto(0, -30, "imagens/fundo.png", "background") fundo.velX = -1 gramado = Objeto(0, altura - 80, "imagens/gramado.png", "gramado") gramado.velX = -2 chão = Objeto(0, altura - 30, "imagens/chão.png", "chão") chão.velX = -5 flappy = Jogador(largura // 4, altura // 2, "imagens/flappy.png", "flappy") self.adicionarObjeto(fundo) self.adicionarObjeto(gramado) self.adicionarObjeto(chão) self.adicionarObjeto(flappy)
def iniciar(self): self.pos_previa = [865, 35] self.pos_seta = [450, 30] self.bola_previa = None self.prev = True self.raio = 29 self.jogada = 0 self.bola_voando = False self.explodiu = False self.erros = 0 self.vez = 0 self.pont = 0 self.perdeu = False self.frame_rate = 1 / 120 self.vel_bolas = 800 self.imagem_seta = pyglet.image.load(r'imagens\seta.png') self.imagem_seta.anchor_y = self.imagem_seta.height // 2 cor = choice(self.cores) cor_1 = self.dicionario_cores[cor] self.imagem_bola = pyglet.image.load(cor) self.imagem_bola.anchor_x = self.imagem_bola.width // 2 self.imagem_bola.anchor_y = self.imagem_bola.height // 2 self.bola_previa = Objeto(self.imagem_bola, self.pos_previa[0], self.pos_previa[1]) self.bola_previa.cor = cor_1 self.label_pontuacao = pyglet.text.Label('Pontuação : ' + str(self.pont), x=20, y=20, font_size=15, color=(255, 255, 255, 255), bold=True) self.bolas = [] self.seta = Objeto(self.imagem_seta, self.pos_seta[0], self.pos_seta[1]) self.imagem_Gameover = pyglet.image.load(r'imagens\Gameover.png') self.Gameover = Objeto(self.imagem_Gameover, 0, 0) self.colocar_bolas()
def test_casa3_proj_perspectiva(self): self.obj_casa3 = Objeto("./testes/casa3") self.pp_casa3 = ProjPerspectiva( PontoVista(5, 5, 3), PlanoProjecao([0, 0, 0], [1, 0, 0], [0, 1, 0]), self.obj_casa3) self.assertEqual(self.pp_casa3.matrizProjecao[0][0], -3) self.assertEqual(self.pp_casa3.matrizProjecao[0][1], 0) self.assertEqual(self.pp_casa3.matrizProjecao[0][2], 5) self.assertEqual(self.pp_casa3.matrizProjecao[0][3], 0) self.assertEqual(self.pp_casa3.matrizProjecao[1][0], 0) self.assertEqual(self.pp_casa3.matrizProjecao[1][1], -3) self.assertEqual(self.pp_casa3.matrizProjecao[1][2], 5) self.assertEqual(self.pp_casa3.matrizProjecao[1][3], 0) self.assertEqual(self.pp_casa3.matrizProjecao[2][0], 0) self.assertEqual(self.pp_casa3.matrizProjecao[2][1], 0) self.assertEqual(self.pp_casa3.matrizProjecao[2][2], 0) self.assertEqual(self.pp_casa3.matrizProjecao[2][3], 0) self.assertEqual(self.pp_casa3.matrizProjecao[3][0], 0) self.assertEqual(self.pp_casa3.matrizProjecao[3][1], 0) self.assertEqual(self.pp_casa3.matrizProjecao[3][2], 1) self.assertEqual(self.pp_casa3.matrizProjecao[3][3], -3)
def adicionar_linha(self): for bola in self.bolas: bola.sprite.y -= 60 * sin((60 * pi) / 180) for x in range(15): if self.vez == 0: if x == 0: continue cor = choice(self.cores) cor_1 = self.dicionario_cores[cor] self.im_bola = pyglet.image.load(cor) self.im_bola.anchor_x = self.imagem_bola.width // 2 self.im_bola.anchor_y = self.imagem_bola.height // 2 if self.vez == 1: xi = 30 + (x * 60) else: xi = 30 + (x * 60) - (60 * cos((60 * pi) / 180)) yi = 870 self.bolas.append(Objeto(self.im_bola, xi, yi)) self.bolas[-1].parada = True self.bolas[-1].cor = cor_1 self.bolas[-1].inicial = True if self.vez == 0: self.vez = 1 else: self.vez = 0 for bola in self.bolas: bola.tocando = [] self.ver_conectados(bola)
def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.set_location(70, 80) self.pos_previa = [865, 35] self.pos_seta = [450, 30] self.bola_previa = None self.prev = True self.raio = 29 self.jogada = 0 self.bola_voando = False self.cores = [ r'imagens\bola_vermelha.png', r'imagens\bola_rosa.png', r'imagens\bola_amarela.png', r'imagens\bola_verde.png', r'imagens\bola_azul.png' ] self.perdeu = False self.frame_rate = 1 / 240 self.vel_bolas = 800 self.imagem_seta = pyglet.image.load(r'imagens\seta.png') self.imagem_seta.anchor_y = self.imagem_seta.height // 2 self.imagem_bola = pyglet.image.load(choice(self.cores)) self.imagem_bola.anchor_x = self.imagem_bola.width // 2 self.imagem_bola.anchor_y = self.imagem_bola.height // 2 self.bola_previa = Objeto(self.imagem_bola, self.pos_previa[0], self.pos_previa[1]) self.bolas = [] self.seta = Objeto(self.imagem_seta, self.pos_seta[0], self.pos_seta[1]) self.imagem_Gameover = pyglet.image.load(r'imagens\Gameover.png') self.Gameover = Objeto(self.imagem_Gameover, 0, 0)
def iniciar(self): self.pos_previa = [865, 35] self.pos_seta = [450, 30] self.bola_previa = None self.prev = True self.raio = 29 self.jogada = 0 self.bola_voando = False self.perdeu = False self.frame_rate = 1 / 120 self.vel_bolas = 800 self.imagem_seta = pyglet.image.load(r'imagens\seta.png') self.imagem_seta.anchor_y = self.imagem_seta.height // 2 cor = choice(self.cores) cor_1 = self.dicionario_cores[cor] self.imagem_bola = pyglet.image.load(cor) self.imagem_bola.anchor_x = self.imagem_bola.width // 2 self.imagem_bola.anchor_y = self.imagem_bola.height // 2 self.bola_previa = Objeto(self.imagem_bola, self.pos_previa[0], self.pos_previa[1]) self.bola_previa.cor = cor_1 self.bolas = [] self.seta = Objeto(self.imagem_seta, self.pos_seta[0], self.pos_seta[1]) self.imagem_Gameover = pyglet.image.load(r'imagens\Gameover.png') self.Gameover = Objeto(self.imagem_Gameover, 0, 0) self.colocar_bolas()
def __init__(self): self.listaObjetosDefinidos = list() self.listaObjetosDefinidos.append(Objeto("Conector", (1600, 200), (170, 15), (44, 5), (0.65, 0.2))) self.listaObjetosDefinidos.append(Objeto("Bateria", (2800, 500), (375, 125), (60, 5), (0.53, 0.3))) self.listaObjetosDefinidos.append(Objeto("Vasito", (14500, 1500), (570, 80), (130, 10), (0.64, 0.4))) self.listaObjetosDefinidos.append(Objeto("Lata", (4100, 1600), (750, 230), (65, 25), (0.6, 0.2)))
def __init__(self, ambiente, vida, pos_x, pos_y, image): Objeto.__init__(self, ambiente, pos_x, pos_y, image) self.vida = vida
def __init__(self, ambiente, dano, vel_x, pos_x, pos_y): Objeto.__init__(self, ambiente, pos_x, pos_y, imagens.tiro) self.dano = dano self.vel_x = vel_x
def __init__(self, ambiente, vida, pos_x, pos_y, lane): self.barreira = ambiente.image.load( 'imagens/barreira.png').convert_alpha() Objeto.__init__(self, ambiente, pos_x, pos_y, self.barreira) self.vida = vida self.lane = lane
def __init__(self, ide, coordinates, options): Objeto.__init__(self, ide, coordinates, 'circle') self.ray = options.get('ray')
def __init__(self, ambiente, pos_x, pos_y): Objeto.__init__(self, ambiente, pos_x, pos_y, imagens.barra[0]) self.energia = 0 self.cont_img = 0 self.cont_img2 = 0
def __init__(self, ide, coordinates, options): Objeto.__init__(self, ide, coordinates, 'line')