上回继续,这次我们要给游戏加点难度,增加几个随机出现的敌人,玩家碰到敌人后Game Over。

最终效果如下,头上顶个"电风扇"的家伙,就是敌人。

pygame-KidsCanCode系列jumpy-part16-enemy敌人

一、先定义敌人类

 1 # 敌人类
 2 class Mob(pg.sprite.Sprite):
 3     def __init__(self, game):
 4         pg.sprite.Sprite.__init__(self)
 5         self.game = game
 6         self.current_frame = 0
 7         self.last_update = 0
 8         self.image_up = self.game.spritesheet.get_image("flyMan_fly.png")
 9         self.image_down = self.game.spritesheet.get_image("flyMan_jump.png")
10         self.image = self.image_up
11         self.rect = self.image.get_rect()
12         self.rect.centerx = random.choice([-100, WIDTH + 100])
13         self.vx = random.randrange(1, 4)
14         if self.rect.centerx > WIDTH:
15             self.vx *= -1
16         self.rect.y = random.randrange(HEIGHT / 2)
17         self.vy = 0
18         self.dy = 0.5
19 
20     def update(self):
21         self.rect.x += self.vx
22         self.vy += self.dy
23         # 敌人上下移动
24         if abs(self.vy) > 3:
25             self.dy *= -1
26         center = self.rect.center
27         if self.dy < 0:
28             self.image = self.image_up
29         else:
30             self.image = self.image_down
31         self.rect = self.image.get_rect()
32         self.rect.center = center
33         self.rect.y += self.vy
34         # 超出边界自动清除资源
35         if self.rect.left > WIDTH + 100 or self.rect.right < -100:
36             self.kill()
View Code

相关文章: