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)
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:
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)
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()
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)
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()
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)
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