PyCharm

Pycharm es un fantástico IDE para Python.
Cuenta con versión gratuita y versión de pago. Tú eliges.
Este es el IDE que utilizo en el curso
Ir a la página de descargaEn el capítulo de hoy vamos a ver cómo añadir enemigos o cualquier otro elemento de forma aleatoria.
Lo primero, para hacer cosas aleatorias necesitamos importar el módulo random
:
import random
Y creamos la clase de los enemigos.
Por cierto, aquí tienes la imagen de la nave enemiga: enemigo.png
class Enemigo(pygame.sprite.Sprite):
# Sprite del enemigo
def __init__(self):
# Heredamos el init de la clase Sprite de Pygame
super().__init__()
# Rectángulo (enemigos)
self.image = pygame.image.load("principal/enemigo.png").convert()
# Obtiene el rectángulo (sprite)
self.rect = self.image.get_rect()
Instanciamos un objeto de la clase Enemigo
.
enemigos = Enemigo()
También hay que añadirlo al grupo de sprites.
Si no sabes como hacerlo, en el vídeo puedes verlo.
sprites.add(enemigos)
Con esto ya aparecerá el primer enemigo del juego, el cuál, todavía no tiene ni movimiento ni nada, se instancia en la esquina superior izquierda, ya que no hemos especificado nada aún.
Ya sabes como hacer que aparezca en una posición determinada de la pantalla como hemos hecho con la clase Jugador
en capítulos anteriores.
Veamos cómo hacer que un enemigo se instancie en cualquier lugar de la pantalla aleatoriamente.
Esto lo podemos hacer utilizando el módulo random
de Python.
Ves a la clase Enemigo
, en ella, en el __init__
especifica la posicuión en 'x' e 'y'. Solo que en lugar de especificar un valor numérico con una posición fija, le vas a dar el siguiente valor:
self.rect.x = random.randrange(ANCHO - self.rect.width)
self.rect.y = random.randrange(ALTO - self.rect.height)
Se le ha especificado un randrange
de todo el ANCHO
y todo el ALTO
de la pantalla menos el propio tamaño del objeto, con lo que evitamos que aparezca algunas veces un trozo fuera de la pantalla.
Ahora cada enemigo que quieras que aparezca en el juego, te basta con crear el objeto y añadirlo al grupo de sprites.
El problema entra cuando tienes muchos enemigos, puede ser que quieras que se instancien varios objetos de una vez y no tener que repetir tanto código.
Esto es muy fácil de hacer con un bucle for
.
for x in range(50):
enemigo = Enemigo()
sprites.add(enemigo)
Con este bucle generaremos tantos enemigos iguales como los que le indiquemos al range
.
También podemos utilizar el módulo random
para crear instanciaciones aleatorias:
for x in range(random.randrange(5)):
enemigos = Enemigo()
sprites.add(enemigos)
Si te ha gustado este curso y crees que el trabajo merece la pena, te agradeceré eternamente que te suscribas a mi canal de YouTube para apoyarme y que pueda seguir haciendo cursos gratuitos.
Además, si te encanta la programación, tienes un montón más de cursos gratuitos para ver.
No solo eso, podrás participar enviándome comentarios con tus sugerencias para temas específicos o cursos completos o incluso las dudas que tengas y las intentaré ir resolviendo en los cursos que estén todavía abiertos.
Si te quedan dudas sobre el temario, sobre Python, o cualquier otra cosa relacionada o simplemente quieres agradecer, aquí tienes tu sitio para dejar tu granito de arena. Gracias por tus comentarios y por darle vida a este sitio web.