Esempio n. 1
0
    def inicializar(self, arquivo):
        #aqui o arquivo e' lido e todas as instrucoes sao executadas na criacao de um cenario
        with open(arquivo, "r") as file:
            lista_de_instrucoes = file.readlines()

        n = int(lista_de_instrucoes[0])

        numero_obstaculos = int(lista_de_instrucoes[2])

        for i in range(n):
            self.__cenario.append([])
        for i in self.__cenario:
            for j in range(int(lista_de_instrucoes[0])):
                i.append(TipoElemento.Espaco_Vazio.value)

        self.__cenario[int(lista_de_instrucoes[1][0])][int(
            lista_de_instrucoes[1][2])] = self.gato.tipo_elemento

        for i in range(0, numero_obstaculos):
            if lista_de_instrucoes[i + 3][4] is 'R':
                self.__cenario[int(lista_de_instrucoes[i + 3][0])][int(
                    lista_de_instrucoes[i + 3][2])] = Obstaculo(
                        "multilaser", Eresistencia.resistente)
            else:
                self.__cenario[int(lista_de_instrucoes[i + 3][0])][int(
                    lista_de_instrucoes[i + 3][2])] = Obstaculo(
                        "ibyte", Eresistencia.fragil)

        self.__cenario[0][0] = self.rato.tipo_elemento
        self.__cenario[n - 1][n - 1] = self.queijo
 def cria_objeto(self, qtd):
     for _ in range(qtd):
         pista = random.randint(0, 2)
         if len(self.pistas[pista]) == 0:
             posicao = self.__posicoes_obstaculos[pista]
             image = random.choice(self.__obstaculos_tela)
             obstaculo = Obstaculo(posicao, [
                 pygame.image.load(image).convert_alpha(self.tela.display)
             ])
             self.pistas[pista].add(obstaculo)
Esempio n. 3
0
screen = pygame.display.set_mode(size)
pygame.display.set_caption('T-rex rush')
screen.fill(background_colour)
clock = pygame.time.Clock()

pygame.font.init()
font = pygame.font.SysFont('Comic Sans MS', 32)
text = font.render('Score:', True, (0, 255, 0))
textRect = text.get_rect()
textRect.center = (width - width / 3, 25)

pygame.display.flip()

dino = dino([100, CHAO], 44, 47)
ground = ground([0, CHAO], width * 2, 40)
obstaculo = Obstaculo([width, CHAO], 44, 40)
obstaculo2 = Obstaculo([width + width / 2, CHAO], 44, 40)

dino_ia = dino_IA([100, CHAO], 44, 47)
print(dino_ia.neuronios)

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

        elif event.type == pygame.KEYDOWN:
            if event.key == pygame.K_DOWN:
                dino.down = True
            if event.key == pygame.K_UP:
Esempio n. 4
0
    def __init__(self):
        # imagens
        self.img_vida = pygame.image.load('imagens/jogador/vida.png')
        self.img_notvida = pygame.image.load('imagens/jogador/vida_branca.png')

        # spritesheet
        # background
        self.background_sprite = Spritesheet('imagens/background/background.png')
        self.background_sheet = [self.background_sprite.parse_sprite('background0.png'),
                            self.background_sprite.parse_sprite('background1.png'),
                            self.background_sprite.parse_sprite('background2.png'),
                            self.background_sprite.parse_sprite('background3.png'),
                            self.background_sprite.parse_sprite('background4.png'), ]

        # dinossauro
        self.dino_sprite = Spritesheet('imagens/jogador/dino_azul.png')
        self.dino_sheet = [self.dino_sprite.parse_sprite('dino_azul0.png'), self.dino_sprite.parse_sprite('dino_azul1.png')]
        self.dino_escudo = [self.dino_sprite.parse_sprite('dino_azul2.png'), self.dino_sprite.parse_sprite('dino_azul3.png')]
        self.dino_bota = [self.dino_sprite.parse_sprite('dino_azul4.png'), self.dino_sprite.parse_sprite('dino_azul5.png')]
        self.dino_bota_escudo = [self.dino_sprite.parse_sprite('dino_azul6.png'), self.dino_sprite.parse_sprite('dino_azul7.png')]
        self.dinoag_sprite = Spritesheet('imagens/jogador/dino_agachado.png')
        self.dinoag_sheet = [self.dinoag_sprite.parse_sprite('dino_agachado0.png'),
                        self.dinoag_sprite.parse_sprite('dino_agachado1.png')]
        self.dinoag_bota = [self.dinoag_sprite.parse_sprite('dino_agachado2.png'),
                       self.dinoag_sprite.parse_sprite('dino_agachado3.png')]
        self.dinoag_escudo = [self.dinoag_sprite.parse_sprite('dino_agachado4.png'),
                         self.dinoag_sprite.parse_sprite('dino_agachado5.png')]
        self.dinoag_bota_escudo = [self.dinoag_sprite.parse_sprite('dino_agachado6.png'),
                              self.dinoag_sprite.parse_sprite('dino_agachado7.png')]
        # obstaculos
        self.cacto_sprite = Spritesheet('imagens/obstaculos/cactos.png')
        self.cacto_sheet = [self.cacto_sprite.parse_sprite('cactos0.png'), self.cacto_sprite.parse_sprite('cactos1.png'),
                       self.cacto_sprite.parse_sprite('cactos2.png')]
        self.passaro_sprite = Spritesheet('imagens/obstaculos/passarinho.png')
        self.passaro_preto_sheet = [self.passaro_sprite.parse_sprite('passarinho0.png'),
                               self.passaro_sprite.parse_sprite('passarinho1.png')]
        self.passaro_marrom_sheet = [self.passaro_sprite.parse_sprite('passarinho2.png'),
                                self.passaro_sprite.parse_sprite('passarinho3.png')]
        # itens
        self.moeda_sprite = Spritesheet('imagens/itens/Coin.png')
        self.moeda_sheet = [self.moeda_sprite.parse_sprite('Coin0.png'), self.moeda_sprite.parse_sprite('Coin1.png'),
                       self.moeda_sprite.parse_sprite('Coin2.png'), self.moeda_sprite.parse_sprite('Coin3.png'),
                       self.moeda_sprite.parse_sprite('Coin4.png'), self.moeda_sprite.parse_sprite('Coin5.png'),
                       self.moeda_sprite.parse_sprite('Coin6.png'), self.moeda_sprite.parse_sprite('Coin7.png'),
                       self.moeda_sprite.parse_sprite('Coin8.png')]
        self.mini_moeda_sprite = Spritesheet('imagens/itens/moeda_pequena.png')
        self.mini_moeda_sheet = [self.mini_moeda_sprite.parse_sprite('moeda_pequena0.png'),
                            self.mini_moeda_sprite.parse_sprite('moeda_pequena1.png'),
                            self.mini_moeda_sprite.parse_sprite('moeda_pequena2.png'),
                            self.mini_moeda_sprite.parse_sprite('moeda_pequena3.png')]
        self.poderes = Spritesheet('imagens/itens/poderes.png')
        self.poderes_sheet = [self.poderes.parse_sprite('poderes0.png'), self.poderes.parse_sprite('poderes1.png')]
        self.moldura_sheet = [self.poderes.parse_sprite('poderes2.png'), self.poderes.parse_sprite('poderes3.png'),
                         self.poderes.parse_sprite('poderes4.png'), self.poderes.parse_sprite('poderes5.png'),
                         self.poderes.parse_sprite('poderes6.png'), self.poderes.parse_sprite('poderes7.png'),
                         self.poderes.parse_sprite('poderes8.png'), self.poderes.parse_sprite('poderes9.png'),
                         self.poderes.parse_sprite('poderes10.png'),self.poderes.parse_sprite('poderes11.png')]

        # velocidade geral
        self.velocidade = -9
        self.velocidade_pulo = -17
        self.gravidade = 0.6
        self.aceleracao = -0.0002
        # intanciando classes
        self.fundo1 = Background(self.background_sheet[0])
        self.fundo2 = Background(self.background_sheet[1])
        self.fundo3 = Background(self.background_sheet[2])
        self.fundo4 = Background(self.background_sheet[3])
        self.fundo5 = Background(self.background_sheet[4])
        self.layers = [self.fundo1, self.fundo2, self.fundo3, self.fundo4, self.fundo5]
        self.dino = Jogador(0, 80, 320, self.dino_sheet, 128, 120, self.gravidade, self.img_vida, self.poderes_sheet, self.moldura_sheet,
                       self.velocidade_pulo)
        self.cacto = Obstaculo(self.velocidade, 800, 350, self.cacto_sheet, 32, 96, self.aceleracao)
        self.mapa = Background_controller(self.layers, self.velocidade, self.aceleracao)
        self.moeda = Moeda(self.velocidade, 1000, 220, self.moeda_sheet, 48, 48, self.aceleracao)
        self.mini_moeda = Moeda(0, 970, 25, self.mini_moeda_sheet, 32, 32, 0)

        self.branco = (255, 255, 255)
        self.preto = (0, 0, 0)
        # FPS
        self.clock = pygame.time.Clock()
        self.fps = 60

        self.allObjects = [self.dino, self.cacto, self.moeda]

        self.moedaSound = pygame.mixer.Sound('sons/moeda.mp3')
        self.gameOverSound = pygame.mixer.Sound('sons/game_over.wav')
        self.moedaSound.set_volume(0.02)
        self.danoSound = pygame.mixer.Sound('sons/export.wav')
        self.danoSound.set_volume(0.5)
        self.puloSound = pygame.mixer.Sound('sons/pulo.wav')
        self.puloSound.set_volume(0.5)
        self.poderSound = pygame.mixer.Sound('sons/poder.mp3')
        self.poderSound.set_volume(0.5)
Esempio n. 5
0
def main():
    pygame.init()

    #Variaveis
    bgX = 0
    veloc = 0
    branco = (255, 255, 255)
    vermelho = (255, 0, 0)
    contador = 0
    pontuacao = 0
    xbola = 1
    contSprite = 0
    sair = False
    colidiu = False

    tela = pygame.display.set_mode((1036, 517))
    pygame.display.set_caption("HuxleyJump")

    icone = pygame.image.load(os.path.join("imgs/icone.jpg")).convert_alpha()
    pygame.display.set_icon(icone)

    background = pygame.image.load(os.path.join("imgs/fundo.png")).convert()
    tela.blit(background, (0, 0))

    ender = "imgs/sprites/"
    sp1 = pygame.image.load(os.path.join(ender+"1.png")).convert_alpha()
    sp2 = pygame.image.load(os.path.join(ender+"2.png")).convert_alpha()
    sp3 = pygame.image.load(os.path.join(ender+"3.png")).convert_alpha()
    sp4 = pygame.image.load(os.path.join(ender+"4.png")).convert_alpha()
    sp5 = pygame.image.load(os.path.join(ender+"5.png")).convert_alpha()
    sp6 = pygame.image.load(os.path.join(ender+"6.png")).convert_alpha()
    sp7 = pygame.image.load(os.path.join(ender+"7.png")).convert_alpha()
    sp8 = pygame.image.load(os.path.join(ender+"8.png")).convert_alpha()
    sp9 = pygame.image.load(os.path.join(ender+"9.png")).convert_alpha()
    sp10 = pygame.image.load(os.path.join(ender+"10.png")).convert_alpha()

    lista = [sp1, sp2, sp3, sp4, sp5, sp6, sp7, sp8, sp9, sp10]

    jogador = Personagem(lista)

    obst = pygame.image.load(os.path.join(
        "imgs/obstaculo.png")).convert_alpha()
    bola = Obstaculo(obst)
    bola2 = Obstaculo(obst,60)

    bolas = [bola, bola2]

    botaoVoltar = pygame.image.load(os.path.join(
        "imgs/botoes/voltar.png")).convert_alpha()
    retVoltar = botaoVoltar.get_rect()
    retVoltar.left, retVoltar.top = 450, 400

    musica = pygame.mixer.music.load(os.path.join(
        "musica", "crazy.mp3"))  # Carrega a musica
    musica = pygame.mixer.music.play(-1)  # Toca a musica infinitamente (-1)

    pulo = pygame.mixer.Sound(os.path.join("musica/pulo.ogg"))

    fonte = os.path.join("fonte", "RAVIE.ttf")
    pontuacaoTexto = pygame.font.Font(fonte, 32)

    relogio=pygame.time.Clock()

    while not sair:
        
        if not colidiu:
            #Linhas que fazem com que o background se movimente.
            # o resto da divisao do x do background pela largura da tela
            relX = bgX % background.get_rect().width
            tela.blit(background, (relX - background.get_rect().width, 0))
            if(relX < 1036):
                tela.blit(background, (relX, 0))
            bgX -= 1

            jogador.atualizar(tela,contSprite)
            
            if(bola.getLeft() <= -10):
                indice = random.randint(0, 1)
                bola = bolas[indice]

            bola.atualizar(tela)

            textoPontos = pontuacaoTexto.render(
                "Pontuação: %d" % pontuacao, True, branco)

            xbola = calculaVelocidade(pontuacao, xbola)
            bola.mover(-xbola, 0)

            bola.verificacao()

            jogador.mover(veloc, 0,contSprite)

            tela.blit(textoPontos, (700, 20))

            contador += 1
            
            if(contador == 60): #pontuacao
                pontuacao += 1
                contador = 0

            if(contador%30==0): #movimento do boneco
                contSprite += 1

            if(contSprite>=10): #quantidade de imagens de sprite
                contSprite=0

        else:
            # Sobrepoe os elementos pra fazer com que eles desapareçem
            tela.blit(background, (0, 0))
            perdeu = pontuacaoTexto.render(
                "Você perdeu!", True, (255, 255, 255))
            recomecar = pontuacaoTexto.render(
                "Clique com o botão esquerdo pra recomeçar.", False, branco)
            textoPontos = pontuacaoTexto.render(
                "Pontuação: %d" % pontuacao, True, vermelho)

            tela.blit(perdeu, (370, 150))
            tela.blit(textoPontos, (370, 200))
            tela.blit(recomecar, (50, 250))
            tela.blit(botaoVoltar, retVoltar)

        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                sair = True

            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_RIGHT:
                    veloc += 1

                if event.key == pygame.K_SPACE:
                    pulo.play()
                    jogador.pular(contSprite)

            if event.type == pygame.KEYUP:
                if event.key == pygame.K_SPACE:
                    jogador.voltarPulo(contSprite)
                if event.key == pygame.K_RIGHT:
                    veloc = 0

            if (event.type == pygame.MOUSEBUTTONDOWN and colidiu == True):
                x, y = pygame.mouse.get_pos()
                if(retVoltar.collidepoint(x, y)):
                    pygame.mixer.music.stop()
                    menu()
                else:
                    colidiu == False
                    main()

        if(colisao(jogador, bola)):
            colidiu = True

        relogio.tick(1000)
        pygame.display.update()

    pygame.quit()
Esempio n. 6
0
def imprimir_individuo(individuo):
  for cuads in individuo:
    for c in cuads:
      print(c.pertenece, c.x, c.y)

#Comienza programa
aux = 0
x = y = 0

for row in myconstants.ENTORNO7:
  mapa.append([])
  for col in row:
    if col == "W":
      mapa[aux].append(Cuadrante_mapa(x,y,(x,y-32),(x,y+32),(x-32,y),(x+32,y),'o'))
      obstaculos.append(Obstaculo((x, y)))
    if col == "P":
      mapa[aux].append(Cuadrante_mapa(x,y,(x,y-32),(x,y+32),(x-32,y),(x+32,y),'p'))
      pastos.append(Pasto((x, y)))
    x += 32

  y += 32
  x = 0
  aux +=1

running = True
# population = crear_poblacion()#Inicializar una poblacion
# imprimir_population(population)
asd = individual()
imprimir_individuo(asd)
Esempio n. 7
0
            self.desenhar()

            self.atualizar_tela()

            clock.tick(60)


if __name__ == "__main__":
    jogo = Jogo()
    """
    nave1 = Nave(jogo.ambiente, 1, Vetor(200, 300), 6, 0.1, 1, 0)
    nave2 = Nave(jogo.ambiente, 2, Vetor(1000, 300), 3, 0.3, 1, 1)
    jogo.adicionar_nave(nave1)
    jogo.adicionar_nave(nave2)
    """
    jogo.selecao()

    asteroide1 = Obstaculo(jogo.ambiente, "asteroide_0", Vetor(600, 200),
                           Vetor(1, 0.35), 2)
    asteroide2 = Obstaculo(jogo.ambiente, "asteroide_0", Vetor(600, 400),
                           Vetor(-1, -0.35), 2)
    asteroide3 = Obstaculo(jogo.ambiente, "asteroide_0", Vetor(600, 300),
                           Vetor(0.0, 0.1), 0.2)
    jogo.adicionar_objeto(asteroide1)
    jogo.adicionar_objeto(asteroide2)
    jogo.adicionar_objeto(asteroide3)

    jogo.criar_tela("Sagu", (1280, 720), "fundo")

    jogo.run()
Esempio n. 8
0
from pygame.locals import *
from personaje import Personaje
from obstaculo import Obstaculo
from random import randint

size = width, height = 640, 480
screen = pygame.display.set_mode(size)
pygame.display.set_caption("Flappy")

fondo = pygame.image.load("img/fondo.png")

speedFondo = [-1,0]
morraco = Personaje(size)
    
obstaculo = [Obstaculo(size,640, randint(1, 5)),
            Obstaculo(size,940, randint(1, 5)), 
            Obstaculo(size,1240, randint(1, 5)), 
            Obstaculo(size,1540, randint(1, 5))]




def main():
    pygame.init()        
    fondoRect = fondo.get_rect()
    
    
    fuente = pygame.font.Font(None,40)    
    
Esempio n. 9
0
    def tratar_eventos(self, jogo):
        """
        Este metodo trata os eventos de pressionamento de teclas

        :param jogo: O jogo no qual a nave esta
        """

        teclas = jogo.ambiente.key.get_pressed()

        if self.codigo == 0:
            # FAZ A NAVE ATIRAR
            if teclas[jogo.ambiente.K_LSHIFT] and self.pode_atirar:
                direcao = Vetor(math.cos(self.angulo * math.pi / 180),
                                -math.sin(self.angulo * math.pi / 180))

                tiro = Obstaculo(jogo.ambiente, "tiro_" + str(self.cor),
                                 self.posicao + (direcao * self._raio),
                                 direcao, 5, 5)

                self.lista_tiros.append(tiro)

                self.pode_atirar = False
                jogo.ambiente.time.set_timer(jogo.ambiente.USEREVENT + 1, 300)

            # ACELERA A NAVE
            if teclas[jogo.ambiente.K_w]:
                movimento_x = self.aceleracao * math.cos(
                    self.angulo * math.pi / 180)
                movimento_y = (-self.aceleracao) * math.sin(
                    self.angulo * math.pi / 180)
                self.adicionar_movimento(Vetor(movimento_x, movimento_y))

            # FREIA A NAVE
            elif teclas[jogo.ambiente.K_s]:
                movimento_x = (-self.aceleracao / 2) * math.cos(
                    self.angulo * math.pi / 180)
                movimento_y = self.aceleracao / 2 * math.sin(
                    self.angulo * math.pi / 180)
                self.adicionar_movimento(Vetor(movimento_x, movimento_y))

            # GIRA A NAVE NO SENTIDO ANTI-HORARIO
            if teclas[jogo.ambiente.K_a]:
                self.angulo += 2
                if self.angulo >= 360:
                    self.angulo = 0
            # GIRA A NAVE NO SENTIDO HORARIO
            elif teclas[jogo.ambiente.K_d]:
                self.angulo -= 2
                if self.angulo >= 360:
                    self.angulo = 0

        elif self.codigo == 1:
            # FAZ A NAVE ATIRAR
            if teclas[jogo.ambiente.K_RSHIFT] and self.pode_atirar:
                direcao = Vetor(math.cos(self.angulo * math.pi / 180),
                                -math.sin(self.angulo * math.pi / 180))

                tiro = Obstaculo(jogo.ambiente, "tiro_" + str(self.cor),
                                 self.posicao + (direcao * self._raio),
                                 direcao, 5, 5)

                self.lista_tiros.append(tiro)

                self.pode_atirar = False
                jogo.ambiente.time.set_timer(jogo.ambiente.USEREVENT + 2, 300)

            # ACELERA A NAVE
            if teclas[jogo.ambiente.K_UP]:
                movimento_x = self.aceleracao * math.cos(
                    self.angulo * math.pi / 180)
                movimento_y = (-self.aceleracao) * math.sin(
                    self.angulo * math.pi / 180)
                self.adicionar_movimento(Vetor(movimento_x, movimento_y))

            # FREIA A NAVE
            elif teclas[jogo.ambiente.K_DOWN]:
                movimento_x = (-self.aceleracao / 4) * math.cos(
                    self.angulo * math.pi / 180)
                movimento_y = (self.aceleracao / 4) * math.sin(
                    self.angulo * math.pi / 180)
                self.adicionar_movimento(Vetor(movimento_x, movimento_y))

            # GIRA A NAVE NO SENTIDO ANTI-HORARIO
            if teclas[jogo.ambiente.K_LEFT]:
                self.angulo += 2
                if self.angulo >= 360:
                    self.angulo = 0

            # GIRA A NAVE NO SENTIDO HORARIO
            elif teclas[jogo.ambiente.K_RIGHT]:
                self.angulo -= 2
                if self.angulo >= 360:
                    self.angulo = 0