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
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
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
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
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
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
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"
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
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")
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
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
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
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)
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)
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