From 8ebc93487bc2f985d12c723f3b745e52edb0305d Mon Sep 17 00:00:00 2001 From: pr4oa5bp9 <1611591024@qq.com> Date: Sun, 7 Nov 2021 08:37:50 +0800 Subject: [PATCH] ADD file via upload --- man.py | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 man.py diff --git a/man.py b/man.py new file mode 100644 index 0000000..dacd10f --- /dev/null +++ b/man.py @@ -0,0 +1,45 @@ +import pygame +from pygame.sprite import Sprite + +class Man(Sprite): + + def __init__(self, ai_settings, screen): + """初始化人,并设置其起始位置""" + super(Man, self).__init__() + self.screen = screen + self.ai_settings = ai_settings + + # 加载人的图像,并获取其rect + self.image = pygame.image.load('images/man.png') + self.rect = self.image.get_rect() + self.screen_rect = screen.get_rect() + + # 在屏幕底部中央启动 + self.rect.centerx = self.screen_rect.centerx + self.rect.bottom = self.screen_rect.bottom + + # 存储人中心的十进制值 + self.center = float(self.rect.centerx) + + # 运动 + self.moving_right = False + self.moving_left = False + + def center_man(self): + """在窗口上使人居中""" + self.center = self.screen_rect.centerx + + def update(self): + """根据移动标志更新人位置""" + # 更新人的中心值,而不是rect + if self.moving_right and self.rect.right < self.screen_rect.right: + self.center += self.ai_settings.man_speed_factor + if self.moving_left and self.rect.left > 0: + self.center -= self.ai_settings.man_speed_factor + + # 从self.center更新rect对象 + self.rect.centerx = self.center + + def blitme(self): + """在当前位置绘制人""" + self.screen.blit(self.image, self.rect)