¿Cómo aprender batallas de aviones usando Python?
1. Nuestro módulo de avión
importa pygame
clase MyPlane(pygame.sprite.Sprite):
def __init__(self , bg_size):
pygame.sprite.Sprite.__init__(self)
self.image1 = pygame.image.load(r'E:\learn pygame\image\me1. png ').convert_alpha()
self.image2 = pygame.image.load(r'E:\learn pygame\image\me2.png').convert_alpha()
self .image3 = pygame.image.load(r'E:\learn pygame\image\me_protect.png').convert_alpha()
self.destroy_images = []
self . destroy_images.extend([\
pygame.image.load(r'E:\learn pygame\image\me_destroy_1.png').convert_alpha(), \
pygame. image .load(r'E:\learn pygame\image\me_destroy_2.png').convert_alpha(), \
pygame.image.load(r'E:\learn pygame\image\me_destroy_3.png ').convert_alpha(), \
pygame.image.load(r'E:\learn pygame\image\me_destroy_4.png').convert_alpha() \
] )
self.rect = self.image1.get_rect()
self.width, self.height = bg_size[0], bg_size[1]
self .rect.left, self.rect.top = (self.width - self.rect.width) // 2, self.height - self.rect.height - 60
self.speed = 10
self.active = True
self.invincible = False
self.mask = pygame.mask.from_surface(self.image1)
def moveUp(self):
if self.rect.top gt;
self.rect.top -= self.speed
else :
self.rect.top = 0
def moverAbajo(sel
f):
if self.rect.bottom lt; self.height - 30:
self.rect.top = self.speed
else:
self.rect.bottom = self.height - 30
def moveLeft(self):
if self.rect.left gt 0:
self.rect.left -= self.speed
else:
self.rect.left = 0
def moverDerecha(self):
if self.rect.right lt; self.width:
self.rect.left = self.speed
else:
self.rect.right = self.width
def reset(self):
self.rect.left, self.rect.top = (self.width - self.rect .ancho) // 2, self.height - self.rect.height - 30
self.active = True
self.invincible = True
2 , avión enemigo y módulo de animación de fondo
importar pygame
desde importación aleatoria *
clase SmallEnemy(pygame.sprite.Sprite):
energía = 1
def __init__(self, bg_size):
pygame.sprite.Sprite.__init__(self)
self.image = pygame. .load(r'E:\learn pygame\image\enemy1.png').convert_alpha()
self.destroy_images = []
self.destroy_images.extend([ \
pygame.image.load(r'E:\learn pygame\image\enemy1_down1.png').convert_alpha(), \
pygame.image.load(r' E :\learn pygame\image\enemy1_down2.png').convert_alpha(), \
pygame.image.load(r'E:\learn pygame\image\enemy1_down3.png').convert_alpha() , \
pygame.image.load(r'E:\learn pygame\image\enemy1_down4.png').convert_alpha() \
])
auto.rect
= self.image.get_rect()
self.width, self.height = bg_size[0], bg_size[1]
self.speed = 2
self.active = True
self.rect.left, self.rect.top = \
randint(0, self.width - self.rect.width), \
randint(-5 * self.height, 0)
self.mask = pygame.mask.from_surface(self.image)
self.energy = SmallEnemy .energy
self.hit = False
def move(self):
if self.rect.top lt self.height:
self.rect.top = self.speed
else:
self.reset()
def reset(self):
self.active = True
self.energy = SmallEnemy.energy
self.rect.left, self.rect.top = \
randint (0, self.width - self.rect.width), \
randint(-5 * self.height, 0)
clase MidEnemy(pygame.sprite.Sprite):
energía = 4