Example #1
0
    def controleDeMovimento(self):
        self.cont += 1
        if (self.cont >= 1000):
            self.cont = 1

        if (self.x >= 450):
            self.x -= 1
            self.posicao = "CIMA"
        if (self.x <= 10):
            self.x += 1
            self.posicao = "BAIXO"
        if (self.y >= 450):
            self.y -= 1
            self.posicao = "DIREITA"
        if (self.y < 10):
            self.y += 1
            self.posicao = "ESQUERDA"

        if (float(random.randint(1, 1000)) % 100 == 0):
            self.posicao = "CIMA"
            self.bala.append(Tiro(self.x, self.y, self.posicao, (255, 0, 0)))
        if (float(random.randint(1, 1000)) % 200 == 0):
            self.posicao = "BAIXO"
            self.bala.append(Tiro(self.x, self.y, self.posicao, (255, 0, 0)))
        if (float(random.randint(1, 1000)) % 300 == 0):
            self.posicao = "DIREITA"
            self.bala.append(Tiro(self.x, self.y, self.posicao, (255, 0, 0)))
        if (float(random.randint(1, 1000)) % 400 == 0):
            self.posicao = "ESQUERDA"
            self.bala.append(Tiro(self.x, self.y, self.posicao, (255, 0, 0)))

        if (self.cont % 20 == 0):
            self.bala.append(Tiro(self.x, self.y, self.posicao, (255, 0, 0)))

        for i in range(len(self.bala)):
            self.bala[i].atira()
            self.bala[i].drawBala(self.DISPLAYSURF)
            if (self.bala[i].x > 550 or self.bala[i].x < -50):
                del self.bala[i]
                break
            if (self.bala[i].y > 550 or self.bala[i].y < -50):
                del self.bala[i]
                break

        if (self.posicao == "DIREITA"):
            self.x += 3
        if (self.posicao == "ESQUERDA"):
            self.x -= 3
        if (self.posicao == "CIMA"):
            self.y -= 3
        if (self.posicao == "BAIXO"):
            self.y += 3
Example #2
0
	def interacoes_colonos_atirador(self,ambiente):

		for colono in self.colonos_atirador:
			#colisao_colonos_atirador = ambiente.sprite.spritecollide(colono,self.cabanas,False,ambiente.sprite.collide_mask)
			if colono.rect.x < 820:
				if colono.clock_atirar + colono.intervalo_ataque < self.ambiente.time.get_ticks():
					colono.animacao_atirando()
					self.tiros.add(Tiro(self.ambiente, 1, -4.5, (colono.rect.x-colono.image.get_width()/4), (colono.rect.y+colono.image.get_height()/5.3)))
					self.todos_objetos.add(self.tiros)
					colono.clock_atirar = self.ambiente.time.get_ticks()


			if colono.rect.x == 0:
				return 'Perdeu'
		

			
			if self.barreiras: ## Se existirem barreiras:
				for barreira in self.barreiras:
					if colono.lane == barreira.lane: ## Se ambos se encontram na mesma linha
						if colono.rect.x - barreira.rect.x < 200 and colono.rect.x - barreira.rect.x > 64:
							colono.vel_x = 0	
							colono.atacar_barreira = True

			
			colono.movimentar()

			if not colono.atacar_barreira:
				colono.animar()
Example #3
0
    def interacoes_colonos_atirador(self, ambiente):

        for colono in self.colonos_atirador:
            colisao_colonos_atirador = ambiente.sprite.spritecollide(
                colono, self.cabanas, False, ambiente.sprite.collide_mask)

            if colisao_colonos_atirador:
                for colono in colisao_colonos_atirador:
                    colono.kill()
                    cabana.perder_vida(2)

            elif colono.rect.x < 0:
                print('Perdeu')
                return exit()

            elif colono.clock_atirar + colono.intervalo_ataque < self.ambiente.time.get_ticks(
            ):
                colono.animacao_atirando()
                self.tiros.add(
                    Tiro(self.ambiente, 1, -4.5,
                         (colono.rect.x - colono.image.get_width() / 4),
                         (colono.rect.y + colono.image.get_height() / 5.3)))
                self.todos_objetos.add(self.tiros)
                colono.clock_atirar = self.ambiente.time.get_ticks()

            else:
                colono.movimentar()
                colono.animar()
Example #4
0
 def _dispara_tiro(self):
     """Cria um novo disparo e adiciona esse tiro em uma lista"""
     if len(self.tiros) < self.configuracoes.tiros_permitidos:
         novo_disparo = Tiro(self)
         self.tiros.add(novo_disparo)
     pygame.mixer.Channel(1).play(
         pygame.mixer.Sound(os.path.join("complemento/torp.mp3")))
     pygame.mixer.Channel(1).set_volume(0.35)
Example #5
0
 def criarTiro(self, idNave):
     nave = self.__naves[idNave]
     orientacaoInicial = int(nave.getOrientacao())
     posicaoInicial = nave.getPosicao()
     idModeloTiro = self.__modelosTiroPadrao[nave.getIdModelo()]
     modeloTiro = self.__modelos[idModeloTiro]
     velocidade = modeloTiro.getVelocidadePadrao()
     tiro = Tiro(orientacaoInicial, posicaoInicial, velocidade,
                 idModeloTiro, idNave, modeloTiro.getGp())
     return tiro
Example #6
0
def controleDeEventos(event):
    global somTiro, x, y, orientacao, bala, orientacaoTiro
    if event.key == K_LEFT:
        orientacao = "ESQUERDA"
    if event.key == K_RIGHT:
        orientacao = "DIREITA"
    if event.key == K_UP:
        orientacao = "CIMA"
    if event.key == K_DOWN:
        orientacao = "BAIXO"
    if event.key == K_SPACE:
        orientacaoTiro = "OK"
        #instancia o objeto tiro
        somTiro.play(0)
        somTiro.set_volume(0.4)
        bala.append(Tiro(x, y, orientacao, (0, 100, 0)))
    else:
        orientacaoTiro = "NOT"
def atirar(tiros, configuracoes, tela, nave):
    if len(tiros) < configuracoes.limite_tiros_tela:
        novo_tiro = Tiro(configuracoes, tela, nave)
        tiros.add(novo_tiro)
while True:
    game.screen.fill((0,0,0))
    for event in pygame.event.get():
        if event.type == KEYDOWN:
            if event.key == K_ESCAPE:
                sys.exit()
            if event.key == K_UP:
                player.movimento['up'] = True
            if event.key == K_DOWN:
                player.movimento['down'] = True
            if event.key == K_LEFT:
                player.movimento['left'] = True
            if event.key == K_RIGHT:
                player.movimento['right'] = True
            if event.key == K_SPACE:
                game.tiros.append(Tiro(game, player))

        if event.type == KEYUP:
            if event.key == K_UP:
                player.movimento['up'] = False
            if event.key == K_DOWN:
                player.movimento['down'] = False
            if event.key == K_LEFT:
                player.movimento['left'] = False
                player.direcao = "up"
            if event.key == K_RIGHT:
                player.movimento['right'] = False
                player.direcao = "up"

    scenario.update()
    player.update()