Example #1
0
    def mover(self):
        objetivo = self.mainwindow.tanque_principal
        dist = distancia(self, objetivo)
        dx = objetivo.cord_x - self.cord_x
        dy = objetivo.cord_y - self.cord_y

        cambio_x = dx / dist
        cambio_y = dy / dist

        self.cord_x += cambio_x * self.velocidad_mov
        self.cord_y += cambio_y * self.velocidad_mov

        self.cambiar_segun_grado(cambio_x, cambio_y)

        for pared in self.mainwindow.lista_paredes_blandas:
            if distancia(self, pared) < 30:
                pared.hide()
                self.mainwindow.lista_paredes_blandas.remove(pared)

        for pared in self.mainwindow.lista_paredes_duras:
            if distancia(self, pared) < 30:
                self.cord_x -= cambio_x * self.velocidad_mov
                self.cord_y -= cambio_y * self.velocidad_mov

        if distancia(self, self.mainwindow.tanque_principal) < 30:
            self.cord_x -= cambio_x * self.velocidad_mov
            self.cord_y -= cambio_y * self.velocidad_mov
            self.mainwindow.tanque_principal.cañon.salud -= 0.001

        if self.cord_x <= 30 or self.cord_y <= 30 or self.cord_x >= 545 or self.cord_y >= 545:
            self.cord_x -= cambio_x * self.velocidad_mov
            self.cord_y -= cambio_y * self.velocidad_mov
Example #2
0
    def mover(self):
        self.parametro_mov += 0.015

        cambio_x = cos(self.parametro_mov)
        cambio_y = sin(self.parametro_mov)
        self.cord_x += cambio_x * self.velocidad_mov
        self.cord_y += cambio_y * self.velocidad_mov

        self.cambiar_segun_grado(cambio_x, cambio_y)

        for pared in self.mainwindow.lista_paredes_blandas:
            if distancia(self, pared) < 30:
                self.cord_x -= cambio_x * self.velocidad_mov
                self.cord_y -= cambio_y * self.velocidad_mov

        for pared in self.mainwindow.lista_paredes_duras:
            if distancia(self, pared) < 30:
                self.cord_x -= cambio_x * self.velocidad_mov
                self.cord_y -= cambio_y * self.velocidad_mov

        if distancia(self, self.mainwindow.tanque_principal) < 30:
            self.cord_x -= cambio_x * self.velocidad_mov
            self.cord_y -= cambio_y * self.velocidad_mov
            self.mainwindow.tanque_principal.cañon.salud -= 0.0001

        if self.cord_x <= 30 or self.cord_y <= 30 or self.cord_x >= 545 or self.cord_y >= 545:
            self.cord_x -= cambio_x * self.velocidad_mov
            self.cord_y -= cambio_y * self.velocidad_mov
Example #3
0
def bala_con_paredes(self):
    for pared in self.mainwindow.lista_paredes_blandas:
        if distancia(self, pared) < 30:
            self.mainwindow.lista_paredes_blandas.remove(pared)
            pared.hide()
            self.mainwindow.lista_balas_disparadas.remove(self)
            self.hide()

    for pared in self.mainwindow.lista_paredes_duras:
        if distancia(self, pared) < 30:
            self.angulo_bala -= 90
Example #4
0
    def proteger(self):

        for bala in self.mainwindow.lista_balas_disparadas:

            angulo_cursor = 270 + angulo_a_cursor(
                (self.cursor.pos().x() - self.mainwindow.pos().x(),
                 self.cursor.pos().y() - self.mainwindow.pos().y() - 25),
                (self.mainwindow.tanque_principal.cord_x + 15,
                 self.mainwindow.tanque_principal.cord_y + 15))
            angulo_bala = bala.angulo_bala * 180 / pi % 360

            diferencia_angulos = angulo_cursor - angulo_bala

            condicion_cañon = False

            if diferencia_angulos > 270 or diferencia_angulos < 90:
                condicion_cañon = True

            if distancia(self.mainwindow.tanque_principal,
                         bala) < 20 and condicion_cañon:
                bala.hide()
                self.mainwindow.lista_balas_disparadas.remove(bala)
                self.protecciones_restantes -= 1

                if self.protecciones_restantes == 0:
                    self.mainwindow.escudo = None
Example #5
0
def bala_penetrante_con_enemigo(self):
    for enemigo in self.mainwindow.lista_enemigos:
        if distancia(self, enemigo) < 10 and self.sin_impacto:
            enemigo.salud -= self.mainwindow.tanque_principal.fuerza * 10
            self.mainwindow.lista_balas_disparadas.remove(self)
            self.hide()
            self.sin_impacto = False
Example #6
0
def principal_con_portales(self):
    for portal in self.mainwindow.lista_portales:
        if len(self.mainwindow.lista_portales) == 2:
            if distancia(self,
                         portal) <= 50 and portal.tiempo_hasta_disponible <= 0:

                if self.mainwindow.lista_portales[1] == portal:
                    otro_portal = self.mainwindow.lista_portales[0]
                else:
                    otro_portal = self.mainwindow.lista_portales[1]
                portal.tiempo_hasta_disponible = 3
                otro_portal.tiempo_hasta_disponible = 3

                if otro_portal.lugar_aparicion == "derecha":
                    self.cord_x = otro_portal.cord_x + 30
                    self.cord_y = otro_portal.cord_y
                elif otro_portal.lugar_aparicion == "izquierda":
                    self.cord_x = otro_portal.cord_x - 30
                    self.cord_y = otro_portal.cord_y
                elif otro_portal.lugar_aparicion == "arriba":
                    self.cord_x = otro_portal.cord_x
                    self.cord_y = otro_portal.cord_y - 30
                elif otro_portal.lugar_aparicion == "abajo":
                    self.cord_x = otro_portal.cord_x
                    self.cord_y = otro_portal.cord_y + 30
Example #7
0
def moneda(self):
    if distancia(self, self.mainwindow.tanque_principal) < 20:
        self.hide()
        self.mainwindow.lista_elementos.remove(self)
        cantidad = choice([50, 100, 150, 200])
        self.mainwindow.puntaje += cantidad
        self.mainwindow.ultimo_powerup = str(cantidad) + " Puntos"
Example #8
0
def normal_con_principal_grande(self):
    if distancia(self,
                 self.mainwindow.tanque_principal) < 10 and self.sin_impacto:
        self.mainwindow.tanque_principal.cañon.salud -= 15
        self.mainwindow.lista_balas_disparadas.remove(self)
        self.hide()
        self.sin_impacto = False
Example #9
0
def powerup_blanco(self):
    if distancia(self, self.mainwindow.tanque_principal) < 20:
        self.hide()
        self.mainwindow.lista_elementos.remove(self)
        cantidad = randint(1, 3)
        self.mainwindow.ultimo_powerup = str(cantidad) + " Balas Penetrantes"
        for i in range(cantidad):
            self.mainwindow.mis_balas.append("p")
Example #10
0
def bala_explosiva_con_enemigo(self):
    for enemigo in self.mainwindow.lista_enemigos:
        if distancia(self, enemigo) < 10 and self.sin_impacto:
            enemigo.salud -= self.mainwindow.tanque_principal.fuerza * 12
            self.mainwindow.lista_balas_disparadas.remove(self)
            self.hide()
            self.mainwindow.lista_explosiones.append(
                MiniExplosion(self.mainwindow, (self.cord_x, self.cord_y)))
            self.sin_impacto = False
Example #11
0
def bala_ralentizante_con_enemigo(self):
    for enemigo in self.mainwindow.lista_enemigos:
        if distancia(self, enemigo) < 10 and self.sin_impacto:
            enemigo.salud -= self.mainwindow.tanque_principal.fuerza * 10
            self.mainwindow.lista_balas_disparadas.remove(self)
            self.hide()
            enemigo.velocidad_mov *= 0.5
            enemigo.tiempo_ralentizacion = 5

            self.sin_impacto = False
Example #12
0
 def tick(self):
     self.tiempo_hasta_boom -= 0.025
     if self.tiempo_hasta_boom <= 0:
         self.hide()
         self.mainwindow.lista_bombas.remove(self)
         self.mainwindow.lista_explosiones.append(
             Explosion(self.mainwindow, (self.cord_x, self.cord_y)))
         for enemigo in self.mainwindow.lista_enemigos:
             if distancia(
                     self,
                     enemigo) <= self.mainwindow.tanque_principal.radio:
                 enemigo.salud -= 40
Example #13
0
    def manejar_colision(self):
        if self.cord_x <= 15 and self.sin_impacto:
            portal = Portal(self.mainwindow, (self.cord_x - 15, self.cord_y))
            portal.lugar_aparicion = "derecha"
            self.mainwindow.lista_portales.append(portal)
            self.mainwindow.lista_balas_disparadas.remove(self)
            self.hide()
            self.sin_impacto = False

        if self.cord_x >= 555 and self.sin_impacto:
            portal = Portal(self.mainwindow, (self.cord_x + 15, self.cord_y))
            portal.lugar_aparicion = "izquierda"
            self.mainwindow.lista_portales.append(portal)
            self.mainwindow.lista_balas_disparadas.remove(self)
            self.hide()
            self.sin_impacto = False
        if self.cord_y <= 15 and self.sin_impacto:
            portal = Portal(self.mainwindow, (self.cord_x, self.cord_y - 15))
            portal.lugar_aparicion = "abajo"
            self.mainwindow.lista_portales.append(portal)
            self.mainwindow.lista_balas_disparadas.remove(self)
            self.hide()
            self.sin_impacto = False
        if self.cord_y >= 555 and self.sin_impacto:
            portal = Portal(self.mainwindow, (self.cord_x, self.cord_y + 15))
            portal.lugar_aparicion = "arriba"
            self.mainwindow.lista_portales.append(portal)
            self.mainwindow.lista_balas_disparadas.remove(self)
            self.hide()
            self.sin_impacto = False

        for enemigo in self.mainwindow.lista_enemigos:
            if distancia(self, enemigo) < 10:
                self.mainwindow.cuantos_portales_disparados -= 1
                self.hide()
                self.mainwindow.lista_balas_disparadas.remove(self)
Example #14
0
 def manejar_colision(self):
     if distancia(self, self.mainwindow.tanque_principal) < 10:
         self.hide()
         self.mainwindow.lista_elementos.remove(self)
         self.mainwindow.escudo = Escudo(self.mainwindow)
Example #15
0
    def keyPressEvent(self, event):
        if not self.pauseado:

            avance = 4 / sqrt(2)

            aceleracion = 0.05

            if event.key() == QtCore.Qt.Key_W and self.otro_key == QtCore.Qt.Key_A or \
                                    event.key() == QtCore.Qt.Key_A and self.otro_key == QtCore.Qt.Key_W:

                if self.control == "fijo":
                    self.tanque_principal.cord_x += -avance * self.tanque_principal.velocidad_mov * self.efecto_aceleracion
                    self.tanque_principal.cord_y += -avance * self.tanque_principal.velocidad_mov * self.efecto_aceleracion
                    self.tanque_principal.cambiar_imagen("assets/tanques/mio_up_left")
                else:
                    self.tanque_principal.cord_x += -avance * cos(
                        self.tanque_principal.angulo_cañon) * self.tanque_principal.velocidad_mov * self.efecto_aceleracion
                    self.tanque_principal.cord_y += -avance * sin(
                        self.tanque_principal.angulo_cañon) * self.tanque_principal.velocidad_mov * self.efecto_aceleracion

                if self.tanque_principal.cord_x <= 30 or self.tanque_principal.cord_y <= 30:
                    self.tanque_principal.cord_x += avance * self.tanque_principal.velocidad_mov * self.efecto_aceleracion
                    self.tanque_principal.cord_y += avance * self.tanque_principal.velocidad_mov * self.efecto_aceleracion

                for enemigo in self.lista_enemigos:
                    if distancia(self.tanque_principal, enemigo) < 30:
                        self.tanque_principal.cord_x += avance * self.tanque_principal.velocidad_mov * self.efecto_aceleracion
                        self.tanque_principal.cord_y += avance * self.tanque_principal.velocidad_mov * self.efecto_aceleracion
                        self.tanque_principal.cañon.salud -= 4
                for pared_blanda in self.lista_paredes_blandas:
                    if distancia(self.tanque_principal, pared_blanda) < 30:
                        self.tanque_principal.cord_x += avance * self.tanque_principal.velocidad_mov * self.efecto_aceleracion
                        self.tanque_principal.cord_y += avance * self.tanque_principal.velocidad_mov * self.efecto_aceleracion
                for pared_dura in self.lista_paredes_duras:
                    if distancia(self.tanque_principal, pared_dura) < 30:
                        self.tanque_principal.cord_x += avance * self.tanque_principal.velocidad_mov * self.efecto_aceleracion
                        self.tanque_principal.cord_y += avance * self.tanque_principal.velocidad_mov * self.efecto_aceleracion

                self.efecto_aceleracion += aceleracion



            elif event.key() == QtCore.Qt.Key_W and self.otro_key == QtCore.Qt.Key_D or \
                                    event.key() == QtCore.Qt.Key_D and self.otro_key == QtCore.Qt.Key_W:
                if self.control == "fijo":
                    self.tanque_principal.cord_x += avance * self.tanque_principal.velocidad_mov * self.efecto_aceleracion
                    self.tanque_principal.cord_y += -avance * self.tanque_principal.velocidad_mov * self.efecto_aceleracion
                    self.tanque_principal.cambiar_imagen("assets/tanques/mio_up_right")
                else:
                    self.tanque_principal.cord_x += avance * cos(
                        self.tanque_principal.angulo_cañon) * self.tanque_principal.velocidad_mov * self.efecto_aceleracion
                    self.tanque_principal.cord_y += -avance * sin(
                        self.tanque_principal.angulo_cañon) * self.tanque_principal.velocidad_mov * self.efecto_aceleracion

                if self.tanque_principal.cord_x >= 545 or self.tanque_principal.cord_y <= 30:
                    self.tanque_principal.cord_x -= avance * self.tanque_principal.velocidad_mov * self.efecto_aceleracion
                    self.tanque_principal.cord_y += avance * self.tanque_principal.velocidad_mov * self.efecto_aceleracion

                for enemigo in self.lista_enemigos:
                    if distancia(self.tanque_principal, enemigo) < 30:
                        self.tanque_principal.cord_x -= avance * self.tanque_principal.velocidad_mov * self.efecto_aceleracion
                        self.tanque_principal.cord_y += avance * self.tanque_principal.velocidad_mov * self.efecto_aceleracion
                        self.tanque_principal.cañon.salud -= 4
                for pared_blanda in self.lista_paredes_blandas:
                    if distancia(self.tanque_principal, pared_blanda) < 30:
                        self.tanque_principal.cord_x -= avance * self.tanque_principal.velocidad_mov * self.efecto_aceleracion
                        self.tanque_principal.cord_y += avance * self.tanque_principal.velocidad_mov * self.efecto_aceleracion
                for pared_dura in self.lista_paredes_duras:
                    if distancia(self.tanque_principal, pared_dura) < 30:
                        self.tanque_principal.cord_x -= avance * self.tanque_principal.velocidad_mov * self.efecto_aceleracion
                        self.tanque_principal.cord_y += avance * self.tanque_principal.velocidad_mov * self.efecto_aceleracion

                self.efecto_aceleracion += aceleracion

            elif event.key() == QtCore.Qt.Key_S and self.otro_key == QtCore.Qt.Key_D or \
                                    event.key() == QtCore.Qt.Key_D and self.otro_key == QtCore.Qt.Key_S:
                if self.control == "fijo":
                    self.tanque_principal.cord_x += avance * self.tanque_principal.velocidad_mov * self.efecto_aceleracion
                    self.tanque_principal.cord_y += avance * self.tanque_principal.velocidad_mov * self.efecto_aceleracion
                    self.tanque_principal.cambiar_imagen("assets/tanques/mio_down_right")
                else:
                    self.tanque_principal.cord_x += avance * cos(
                        self.tanque_principal.angulo_cañon) * self.tanque_principal.velocidad_mov * self.efecto_aceleracion
                    self.tanque_principal.cord_y += avance * sin(
                        self.tanque_principal.angulo_cañon) * self.tanque_principal.velocidad_mov * self.efecto_aceleracion

                if self.tanque_principal.cord_x >= 545 or self.tanque_principal.cord_y >= 545:
                    self.tanque_principal.cord_x -= avance * self.tanque_principal.velocidad_mov * self.efecto_aceleracion
                    self.tanque_principal.cord_y -= avance * self.tanque_principal.velocidad_mov * self.efecto_aceleracion

                for enemigo in self.lista_enemigos:
                    if distancia(self.tanque_principal, enemigo) < 30:
                        self.tanque_principal.cord_x -= avance * self.tanque_principal.velocidad_mov * self.efecto_aceleracion
                        self.tanque_principal.cord_y -= avance * self.tanque_principal.velocidad_mov * self.efecto_aceleracion
                        self.tanque_principal.cañon.salud -= 4
                for pared_blanda in self.lista_paredes_blandas:
                    if distancia(self.tanque_principal, pared_blanda) < 30:
                        self.tanque_principal.cord_x -= avance * self.tanque_principal.velocidad_mov * self.efecto_aceleracion
                        self.tanque_principal.cord_y -= avance * self.tanque_principal.velocidad_mov * self.efecto_aceleracion
                for pared_dura in self.lista_paredes_duras:
                    if distancia(self.tanque_principal, pared_dura) < 30:
                        self.tanque_principal.cord_x -= avance * self.tanque_principal.velocidad_mov * self.efecto_aceleracion
                        self.tanque_principal.cord_y -= avance * self.tanque_principal.velocidad_mov * self.efecto_aceleracion

                self.efecto_aceleracion += aceleracion

            elif event.key() == QtCore.Qt.Key_A and self.otro_key == QtCore.Qt.Key_S or \
                                    event.key() == QtCore.Qt.Key_S and self.otro_key == QtCore.Qt.Key_A:
                if self.control == "fijo":

                    self.tanque_principal.cord_x += -avance * self.tanque_principal.velocidad_mov * self.efecto_aceleracion
                    self.tanque_principal.cord_y += avance * self.tanque_principal.velocidad_mov * self.efecto_aceleracion
                    self.tanque_principal.cambiar_imagen("assets/tanques/mio_down_left")
                else:
                    self.tanque_principal.cord_x += -avance * cos(
                        self.tanque_principal.angulo_cañon) * self.tanque_principal.velocidad_mov * self.efecto_aceleracion
                    self.tanque_principal.cord_y += avance * sin(
                        self.tanque_principal.angulo_cañon) * self.tanque_principal.velocidad_mov * self.efecto_aceleracion

                if self.tanque_principal.cord_x <= 30 or self.tanque_principal.cord_y >= 545:
                    self.tanque_principal.cord_x += avance * self.tanque_principal.velocidad_mov * self.efecto_aceleracion
                    self.tanque_principal.cord_y -= avance * self.tanque_principal.velocidad_mov * self.efecto_aceleracion

                for enemigo in self.lista_enemigos:
                    if distancia(self.tanque_principal, enemigo) < 30:
                        self.tanque_principal.cord_x += avance * self.tanque_principal.velocidad_mov * self.efecto_aceleracion
                        self.tanque_principal.cord_y -= avance * self.tanque_principal.velocidad_mov * self.efecto_aceleracion
                        self.tanque_principal.cañon.salud -= 4
                for pared_blanda in self.lista_paredes_blandas:
                    if distancia(self.tanque_principal, pared_blanda) < 30:
                        self.tanque_principal.cord_x += avance * self.tanque_principal.velocidad_mov * self.efecto_aceleracion
                        self.tanque_principal.cord_y -= avance * self.tanque_principal.velocidad_mov * self.efecto_aceleracion
                for pared_dura in self.lista_paredes_duras:
                    if distancia(self.tanque_principal, pared_dura) < 30:
                        self.tanque_principal.cord_x += avance * self.tanque_principal.velocidad_mov * self.efecto_aceleracion
                        self.tanque_principal.cord_y -= avance * self.tanque_principal.velocidad_mov * self.efecto_aceleracion

                self.efecto_aceleracion += aceleracion

            elif event.key() == QtCore.Qt.Key_W:
                if self.control == "fijo":
                    self.tanque_principal.cord_y += -4 * self.tanque_principal.velocidad_mov * self.efecto_aceleracion
                    self.tanque_principal.cambiar_imagen("assets/tanques/mio_up_none")
                else:
                    self.tanque_principal.cord_x += -avance * cos(
                        self.tanque_principal.angulo_cañon) * self.tanque_principal.velocidad_mov * self.efecto_aceleracion
                    self.tanque_principal.cord_y += -avance * sin(
                        self.tanque_principal.angulo_cañon) * self.tanque_principal.velocidad_mov * self.efecto_aceleracion

                if self.tanque_principal.cord_y <= 30:
                    self.tanque_principal.cord_y += 4 * self.tanque_principal.velocidad_mov * self.efecto_aceleracion

                for enemigo in self.lista_enemigos:
                    if distancia(self.tanque_principal, enemigo) < 30:
                        self.tanque_principal.cord_y += 4 * self.tanque_principal.velocidad_mov * self.efecto_aceleracion
                        self.tanque_principal.cañon.salud -= 4
                for pared_blanda in self.lista_paredes_blandas:
                    if distancia(self.tanque_principal, pared_blanda) < 30:
                        self.tanque_principal.cord_y += 4 * self.tanque_principal.velocidad_mov * self.efecto_aceleracion
                for pared_dura in self.lista_paredes_duras:
                    if distancia(self.tanque_principal, pared_dura) < 30:
                        self.tanque_principal.cord_y += 4 * self.tanque_principal.velocidad_mov * self.efecto_aceleracion

                self.efecto_aceleracion += aceleracion

            elif event.key() == QtCore.Qt.Key_A:
                if self.control == "fijo":
                    self.tanque_principal.cord_x += -4 * self.tanque_principal.velocidad_mov * self.efecto_aceleracion
                    self.tanque_principal.cambiar_imagen("assets/tanques/mio_none_left")
                else:

                    x = -avance * self.tanque_principal.velocidad_mov * self.efecto_aceleracion
                    y = -avance * self.tanque_principal.velocidad_mov * self.efecto_aceleracion

                    self.tanque_principal.cord_x += x * cos(
                        self.tanque_principal.angulo_cañon) * y * sin(self.tanque_principal.angulo_cañon)
                    self.tanque_principal.cord_y += -x * sin(self.tanque_principal.angulo_cañon) + y * cos(
                        self.tanque_principal.angulo_cañon)

                if self.tanque_principal.cord_x <= 30:
                    self.tanque_principal.cord_x += 4 * self.tanque_principal.velocidad_mov * self.efecto_aceleracion

                for enemigo in self.lista_enemigos:
                    if distancia(self.tanque_principal, enemigo) < 30:
                        self.tanque_principal.cord_x += 4 * self.tanque_principal.velocidad_mov * self.efecto_aceleracion
                        self.tanque_principal.cañon.salud -= 4
                for pared_blanda in self.lista_paredes_blandas:
                    if distancia(self.tanque_principal, pared_blanda) < 30:
                        self.tanque_principal.cord_x += 4 * self.tanque_principal.velocidad_mov * self.efecto_aceleracion
                for pared_dura in self.lista_paredes_duras:
                    if distancia(self.tanque_principal, pared_dura) < 30:
                        self.tanque_principal.cord_x += 4 * self.tanque_principal.velocidad_mov * self.efecto_aceleracion

                self.efecto_aceleracion += aceleracion

            elif event.key() == QtCore.Qt.Key_S:
                if self.control == "fijo":
                    self.tanque_principal.cord_y += 4 * self.tanque_principal.velocidad_mov * self.efecto_aceleracion
                    self.tanque_principal.cambiar_imagen("assets/tanques/mio_down_none")
                else:
                    self.tanque_principal.cord_x -= -avance * cos(
                        self.tanque_principal.angulo_cañon) * self.tanque_principal.velocidad_mov * self.efecto_aceleracion
                    self.tanque_principal.cord_y -= -avance * sin(
                        self.tanque_principal.angulo_cañon) * self.tanque_principal.velocidad_mov * self.efecto_aceleracion

                if self.tanque_principal.cord_y >= 545:
                    self.tanque_principal.cord_y -= 4 * self.tanque_principal.velocidad_mov * self.efecto_aceleracion

                for enemigo in self.lista_enemigos:
                    if distancia(self.tanque_principal, enemigo) < 30:
                        self.tanque_principal.cord_y -= 4 * self.tanque_principal.velocidad_mov * self.efecto_aceleracion
                        self.tanque_principal.cañon.salud -= 4
                for pared_blanda in self.lista_paredes_blandas:
                    if distancia(self.tanque_principal, pared_blanda) < 30:
                        self.tanque_principal.cord_y -= 4 * self.tanque_principal.velocidad_mov * self.efecto_aceleracion
                for pared_dura in self.lista_paredes_duras:
                    if distancia(self.tanque_principal, pared_dura) < 30:
                        self.tanque_principal.cord_y -= 4 * self.tanque_principal.velocidad_mov * self.efecto_aceleracion

                self.efecto_aceleracion += aceleracion

            elif event.key() == QtCore.Qt.Key_D:
                if self.control == "fijo":
                    self.tanque_principal.cord_x += 4 * self.tanque_principal.velocidad_mov * self.efecto_aceleracion
                    self.tanque_principal.cambiar_imagen("assets/tanques/mio_none_right")
                else:
                    self.tanque_principal.cord_x -= -avance * sin(
                        self.tanque_principal.angulo_cañon) * self.tanque_principal.velocidad_mov * self.efecto_aceleracion
                    self.tanque_principal.cord_y += -avance * cos(
                        self.tanque_principal.angulo_cañon) * self.tanque_principal.velocidad_mov * self.efecto_aceleracion

                if self.tanque_principal.cord_x >= 545:
                    self.tanque_principal.cord_x -= 4 * self.tanque_principal.velocidad_mov * self.efecto_aceleracion

                for enemigo in self.lista_enemigos:
                    if distancia(self.tanque_principal, enemigo) < 30:
                        self.tanque_principal.cord_x -= 4 * self.tanque_principal.velocidad_mov * self.efecto_aceleracion
                        self.tanque_principal.cañon.salud -= 4
                for pared_blanda in self.lista_paredes_blandas:
                    if distancia(self.tanque_principal, pared_blanda) < 30:
                        self.tanque_principal.cord_x -= 4 * self.tanque_principal.velocidad_mov * self.efecto_aceleracion
                for pared_dura in self.lista_paredes_duras:
                    if distancia(self.tanque_principal, pared_dura) < 30:
                        self.tanque_principal.cord_x -= 4 * self.tanque_principal.velocidad_mov * self.efecto_aceleracion

                self.efecto_aceleracion += aceleracion

            elif event.key() == QtCore.Qt.Key_1:
                if self.cuantos_portales_disparados < 2:
                    angulo_portal = angulo_disparo((self.cursor.pos().x() - self.pos().x(),
                                                    self.cursor.pos().y() - self.pos().y() - 25),
                                                   (self.tanque_principal.cord_x + 15,
                                                    self.tanque_principal.cord_y + 15))
                    self.cuantos_portales_disparados += 1
                    BalaPortal(self, (self.tanque_principal.cord_x, self.tanque_principal.cord_y), angulo_portal)


            elif event.key() == QtCore.Qt.Key_2:
                if self.mis_bombas >= 1:
                    Bomba(self, (self.tanque_principal.cord_x, self.tanque_principal.cord_y))
                    self.mis_bombas -= 1

            elif event.key() == QtCore.Qt.Key_P:
                self.pauseado = True

            elif event.key() == QtCore.Qt.Key_G:
                exit(0)

            if self.primera_presion:
                self.otro_key = event.key()
                self.primera_presion = False

        else:
            if event.key() == QtCore.Qt.Key_P:
                self.pauseado = False