From c535b5014a7e98bc95bf5887f9ced391e34e9f89 Mon Sep 17 00:00:00 2001 From: 206530235 <1828358204@qq.com> Date: Thu, 24 Jun 2021 11:17:40 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=96=87=E4=BB=B6=E8=87=B3?= =?UTF-8?q?=20''?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- alien.py | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 alien.py diff --git a/alien.py b/alien.py new file mode 100644 index 0000000..e0041f2 --- /dev/null +++ b/alien.py @@ -0,0 +1,44 @@ +import pygame +from pygame.sprite import Sprite + + +class Alien(Sprite): + """表示单个外星人的类""" + + def __init__(self, ai_settings, screen): + """初始化外星人并设置其他位置""" + + super(Alien, self).__init__() + self.screen = screen + self.ai_settings = ai_settings + + # 加载外星人图像,并设置其rect属性 + self.image = pygame.image.load('images/alien.bmp') + self.rect = self.image.get_rect() + + # 每个外星人最初都在屏幕左上角附近 + self.rect.x = self.rect.width + self.rect.y = self.rect.height + + # 存储外星人的准确位置 + self.x = float(self.rect.x) + + def blitme(self): + """在指定位置绘制外星人""" + + self.screen.blit(self.image, self.rect) + + def check_edges(self): + """如果外星人位于屏幕边缘,就返回True""" + + screen_rect = self.screen.get_rect() + if self.rect.right >= screen_rect.right: + return True + elif self.rect.left <= 0: + return True + + def update(self): + """向右移动外星人""" + + self.x += (self.ai_settings.alien_speed_factor * self.ai_settings.fleet_direction) + self.rect.x = self.x \ No newline at end of file