diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..13566b8
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/alien.py b/alien.py
new file mode 100644
index 0000000..2b7d978
--- /dev/null
+++ b/alien.py
@@ -0,0 +1,43 @@
+# 开发日期: 2024/4/26
+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/al.png')
+ self.rect = self.image.get_rect()
+
+ # 每个外星人最初都是在屏幕左上角
+ self.rect.x = self.rect.width
+ self.rect.y = self.rect.height
+
+ # 存储外星人的准确位置
+ self.x = float(self.rect.x)
+
+ # 增加代码
+ self.max_hp = ai_settings.alien_max_hp # 外星人最大生命值
+ self.hp = ai_settings.alien_max_hp # 外星人当前生命值
+ def draw(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
diff --git a/alien_invasion.py b/alien_invasion.py
new file mode 100644
index 0000000..d8743e1
--- /dev/null
+++ b/alien_invasion.py
@@ -0,0 +1,45 @@
+import pygame
+from ship import Ship
+from settings import Settings
+from pygame.sprite import Group
+import game_functions as gf
+from game_stats import GameStats
+from button import Button
+from scoreboard import Scoreboard
+
+
+def run_game():
+ # 初始化pygame、设置和屏幕对象
+ pygame.init()
+ pygame.mixer.init(frequency=22050, size=16, channels=2, buffer=512)
+ ai_settings = Settings()
+ screen = pygame.display.set_mode((ai_settings.screen_width, ai_settings.screen_height))
+ pygame.display.set_caption("Alien Invasion")
+ pygame.mixer.music.load('bgm/bgm.mp3')
+ pygame.mixer.music.play(-1)
+ pygame.image.load("images/bg.jpg").convert()
+ # 创建Play按钮
+ play_botton = Button(ai_settings, screen, "Play")
+ # 创造一艘飞船
+ ship = Ship(ai_settings, screen)
+ # 创建一个用于存储子弹的编组
+ bullets = Group()
+ # 创建一个用于存储外星人的编组
+ aliens = Group()
+ # 创建一个用于存储游戏统计信息的实例,并创建记分牌
+ stats = GameStats(ai_settings)
+ sb = Scoreboard(ai_settings, screen, stats)
+ # 创建外星人人群
+ gf.create_fleet(ai_settings, screen, ship, aliens)
+
+ # 开始游戏主循环
+ while True:
+ gf.check_events(ai_settings, screen, stats, sb, play_botton, ship, aliens, bullets)
+ if stats.game_active:
+ ship.update()
+ gf.update_bullets(ai_settings, screen, stats, sb, ship, aliens, bullets)
+ gf.update_aliens(ai_settings, screen, stats, sb, ship, aliens, bullets)
+
+ gf.update_screen(ai_settings, screen, stats, sb, ship, aliens, bullets, play_botton)
+
+# run_game()
diff --git a/bgm/bgm.mp3 b/bgm/bgm.mp3
new file mode 100644
index 0000000..8df0058
Binary files /dev/null and b/bgm/bgm.mp3 differ
diff --git a/bgm/bullet.wav b/bgm/bullet.wav
new file mode 100644
index 0000000..8ac9931
Binary files /dev/null and b/bgm/bullet.wav differ
diff --git a/build/alien_invation/Analysis-00.toc b/build/alien_invation/Analysis-00.toc
new file mode 100644
index 0000000..419964f
--- /dev/null
+++ b/build/alien_invation/Analysis-00.toc
@@ -0,0 +1,869 @@
+(['D:\\pythonProject\\test1\\alien_invation.py'],
+ ['D:\\pythonProject\\test1'],
+ [],
+ ['D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\__pyinstaller',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\_pyinstaller_hooks_contrib\\hooks\\stdhooks',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\_pyinstaller_hooks_contrib\\hooks'],
+ {},
+ [],
+ [],
+ False,
+ {},
+ 0,
+ [],
+ [],
+ '3.12.3 (tags/v3.12.3:f6650f9, Apr 9 2024, 14:05:25) [MSC v.1938 64 bit '
+ '(AMD64)]',
+ [('pyi_rth_inspect',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\PyInstaller\\hooks\\rthooks\\pyi_rth_inspect.py',
+ 'PYSOURCE'),
+ ('pyi_rth_pkgres',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\PyInstaller\\hooks\\rthooks\\pyi_rth_pkgres.py',
+ 'PYSOURCE'),
+ ('pyi_rth_pkgutil',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\PyInstaller\\hooks\\rthooks\\pyi_rth_pkgutil.py',
+ 'PYSOURCE'),
+ ('alien_invation',
+ 'D:\\pythonProject\\test1\\alien_invation.py',
+ 'PYSOURCE')],
+ [('_pyi_rth_utils',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\PyInstaller\\fake-modules\\_pyi_rth_utils\\__init__.py',
+ 'PYMODULE'),
+ ('pkgutil', 'D:\\Program Files\\Python312\\Lib\\pkgutil.py', 'PYMODULE'),
+ ('zipimport', 'D:\\Program Files\\Python312\\Lib\\zipimport.py', 'PYMODULE'),
+ ('importlib.readers',
+ 'D:\\Program Files\\Python312\\Lib\\importlib\\readers.py',
+ 'PYMODULE'),
+ ('importlib.resources.readers',
+ 'D:\\Program Files\\Python312\\Lib\\importlib\\resources\\readers.py',
+ 'PYMODULE'),
+ ('importlib.resources._itertools',
+ 'D:\\Program Files\\Python312\\Lib\\importlib\\resources\\_itertools.py',
+ 'PYMODULE'),
+ ('importlib.resources.abc',
+ 'D:\\Program Files\\Python312\\Lib\\importlib\\resources\\abc.py',
+ 'PYMODULE'),
+ ('typing', 'D:\\Program Files\\Python312\\Lib\\typing.py', 'PYMODULE'),
+ ('contextlib',
+ 'D:\\Program Files\\Python312\\Lib\\contextlib.py',
+ 'PYMODULE'),
+ ('importlib.resources',
+ 'D:\\Program Files\\Python312\\Lib\\importlib\\resources\\__init__.py',
+ 'PYMODULE'),
+ ('importlib.resources._legacy',
+ 'D:\\Program Files\\Python312\\Lib\\importlib\\resources\\_legacy.py',
+ 'PYMODULE'),
+ ('importlib.resources._common',
+ 'D:\\Program Files\\Python312\\Lib\\importlib\\resources\\_common.py',
+ 'PYMODULE'),
+ ('importlib.resources._adapters',
+ 'D:\\Program Files\\Python312\\Lib\\importlib\\resources\\_adapters.py',
+ 'PYMODULE'),
+ ('tempfile', 'D:\\Program Files\\Python312\\Lib\\tempfile.py', 'PYMODULE'),
+ ('random', 'D:\\Program Files\\Python312\\Lib\\random.py', 'PYMODULE'),
+ ('statistics',
+ 'D:\\Program Files\\Python312\\Lib\\statistics.py',
+ 'PYMODULE'),
+ ('decimal', 'D:\\Program Files\\Python312\\Lib\\decimal.py', 'PYMODULE'),
+ ('_pydecimal',
+ 'D:\\Program Files\\Python312\\Lib\\_pydecimal.py',
+ 'PYMODULE'),
+ ('contextvars',
+ 'D:\\Program Files\\Python312\\Lib\\contextvars.py',
+ 'PYMODULE'),
+ ('fractions', 'D:\\Program Files\\Python312\\Lib\\fractions.py', 'PYMODULE'),
+ ('numbers', 'D:\\Program Files\\Python312\\Lib\\numbers.py', 'PYMODULE'),
+ ('hashlib', 'D:\\Program Files\\Python312\\Lib\\hashlib.py', 'PYMODULE'),
+ ('logging',
+ 'D:\\Program Files\\Python312\\Lib\\logging\\__init__.py',
+ 'PYMODULE'),
+ ('pickle', 'D:\\Program Files\\Python312\\Lib\\pickle.py', 'PYMODULE'),
+ ('pprint', 'D:\\Program Files\\Python312\\Lib\\pprint.py', 'PYMODULE'),
+ ('dataclasses',
+ 'D:\\Program Files\\Python312\\Lib\\dataclasses.py',
+ 'PYMODULE'),
+ ('copy', 'D:\\Program Files\\Python312\\Lib\\copy.py', 'PYMODULE'),
+ ('_compat_pickle',
+ 'D:\\Program Files\\Python312\\Lib\\_compat_pickle.py',
+ 'PYMODULE'),
+ ('struct', 'D:\\Program Files\\Python312\\Lib\\struct.py', 'PYMODULE'),
+ ('threading', 'D:\\Program Files\\Python312\\Lib\\threading.py', 'PYMODULE'),
+ ('_threading_local',
+ 'D:\\Program Files\\Python312\\Lib\\_threading_local.py',
+ 'PYMODULE'),
+ ('string', 'D:\\Program Files\\Python312\\Lib\\string.py', 'PYMODULE'),
+ ('bisect', 'D:\\Program Files\\Python312\\Lib\\bisect.py', 'PYMODULE'),
+ ('shutil', 'D:\\Program Files\\Python312\\Lib\\shutil.py', 'PYMODULE'),
+ ('tarfile', 'D:\\Program Files\\Python312\\Lib\\tarfile.py', 'PYMODULE'),
+ ('argparse', 'D:\\Program Files\\Python312\\Lib\\argparse.py', 'PYMODULE'),
+ ('textwrap', 'D:\\Program Files\\Python312\\Lib\\textwrap.py', 'PYMODULE'),
+ ('gettext', 'D:\\Program Files\\Python312\\Lib\\gettext.py', 'PYMODULE'),
+ ('gzip', 'D:\\Program Files\\Python312\\Lib\\gzip.py', 'PYMODULE'),
+ ('_compression',
+ 'D:\\Program Files\\Python312\\Lib\\_compression.py',
+ 'PYMODULE'),
+ ('lzma', 'D:\\Program Files\\Python312\\Lib\\lzma.py', 'PYMODULE'),
+ ('bz2', 'D:\\Program Files\\Python312\\Lib\\bz2.py', 'PYMODULE'),
+ ('fnmatch', 'D:\\Program Files\\Python312\\Lib\\fnmatch.py', 'PYMODULE'),
+ ('zipfile',
+ 'D:\\Program Files\\Python312\\Lib\\zipfile\\__init__.py',
+ 'PYMODULE'),
+ ('zipfile._path',
+ 'D:\\Program Files\\Python312\\Lib\\zipfile\\_path\\__init__.py',
+ 'PYMODULE'),
+ ('zipfile._path.glob',
+ 'D:\\Program Files\\Python312\\Lib\\zipfile\\_path\\glob.py',
+ 'PYMODULE'),
+ ('py_compile',
+ 'D:\\Program Files\\Python312\\Lib\\py_compile.py',
+ 'PYMODULE'),
+ ('importlib._bootstrap_external',
+ 'D:\\Program Files\\Python312\\Lib\\importlib\\_bootstrap_external.py',
+ 'PYMODULE'),
+ ('importlib.metadata',
+ 'D:\\Program Files\\Python312\\Lib\\importlib\\metadata\\__init__.py',
+ 'PYMODULE'),
+ ('importlib.abc',
+ 'D:\\Program Files\\Python312\\Lib\\importlib\\abc.py',
+ 'PYMODULE'),
+ ('importlib._abc',
+ 'D:\\Program Files\\Python312\\Lib\\importlib\\_abc.py',
+ 'PYMODULE'),
+ ('importlib._bootstrap',
+ 'D:\\Program Files\\Python312\\Lib\\importlib\\_bootstrap.py',
+ 'PYMODULE'),
+ ('importlib.metadata._itertools',
+ 'D:\\Program Files\\Python312\\Lib\\importlib\\metadata\\_itertools.py',
+ 'PYMODULE'),
+ ('importlib.metadata._functools',
+ 'D:\\Program Files\\Python312\\Lib\\importlib\\metadata\\_functools.py',
+ 'PYMODULE'),
+ ('importlib.metadata._collections',
+ 'D:\\Program Files\\Python312\\Lib\\importlib\\metadata\\_collections.py',
+ 'PYMODULE'),
+ ('importlib.metadata._meta',
+ 'D:\\Program Files\\Python312\\Lib\\importlib\\metadata\\_meta.py',
+ 'PYMODULE'),
+ ('importlib.metadata._adapters',
+ 'D:\\Program Files\\Python312\\Lib\\importlib\\metadata\\_adapters.py',
+ 'PYMODULE'),
+ ('importlib.metadata._text',
+ 'D:\\Program Files\\Python312\\Lib\\importlib\\metadata\\_text.py',
+ 'PYMODULE'),
+ ('email.message',
+ 'D:\\Program Files\\Python312\\Lib\\email\\message.py',
+ 'PYMODULE'),
+ ('email.policy',
+ 'D:\\Program Files\\Python312\\Lib\\email\\policy.py',
+ 'PYMODULE'),
+ ('email.contentmanager',
+ 'D:\\Program Files\\Python312\\Lib\\email\\contentmanager.py',
+ 'PYMODULE'),
+ ('email.quoprimime',
+ 'D:\\Program Files\\Python312\\Lib\\email\\quoprimime.py',
+ 'PYMODULE'),
+ ('email.headerregistry',
+ 'D:\\Program Files\\Python312\\Lib\\email\\headerregistry.py',
+ 'PYMODULE'),
+ ('email._header_value_parser',
+ 'D:\\Program Files\\Python312\\Lib\\email\\_header_value_parser.py',
+ 'PYMODULE'),
+ ('urllib',
+ 'D:\\Program Files\\Python312\\Lib\\urllib\\__init__.py',
+ 'PYMODULE'),
+ ('email.iterators',
+ 'D:\\Program Files\\Python312\\Lib\\email\\iterators.py',
+ 'PYMODULE'),
+ ('email.generator',
+ 'D:\\Program Files\\Python312\\Lib\\email\\generator.py',
+ 'PYMODULE'),
+ ('email._encoded_words',
+ 'D:\\Program Files\\Python312\\Lib\\email\\_encoded_words.py',
+ 'PYMODULE'),
+ ('base64', 'D:\\Program Files\\Python312\\Lib\\base64.py', 'PYMODULE'),
+ ('getopt', 'D:\\Program Files\\Python312\\Lib\\getopt.py', 'PYMODULE'),
+ ('email.charset',
+ 'D:\\Program Files\\Python312\\Lib\\email\\charset.py',
+ 'PYMODULE'),
+ ('email.encoders',
+ 'D:\\Program Files\\Python312\\Lib\\email\\encoders.py',
+ 'PYMODULE'),
+ ('email.base64mime',
+ 'D:\\Program Files\\Python312\\Lib\\email\\base64mime.py',
+ 'PYMODULE'),
+ ('email._policybase',
+ 'D:\\Program Files\\Python312\\Lib\\email\\_policybase.py',
+ 'PYMODULE'),
+ ('email.header',
+ 'D:\\Program Files\\Python312\\Lib\\email\\header.py',
+ 'PYMODULE'),
+ ('email.errors',
+ 'D:\\Program Files\\Python312\\Lib\\email\\errors.py',
+ 'PYMODULE'),
+ ('email.utils',
+ 'D:\\Program Files\\Python312\\Lib\\email\\utils.py',
+ 'PYMODULE'),
+ ('email._parseaddr',
+ 'D:\\Program Files\\Python312\\Lib\\email\\_parseaddr.py',
+ 'PYMODULE'),
+ ('calendar', 'D:\\Program Files\\Python312\\Lib\\calendar.py', 'PYMODULE'),
+ ('urllib.parse',
+ 'D:\\Program Files\\Python312\\Lib\\urllib\\parse.py',
+ 'PYMODULE'),
+ ('ipaddress', 'D:\\Program Files\\Python312\\Lib\\ipaddress.py', 'PYMODULE'),
+ ('datetime', 'D:\\Program Files\\Python312\\Lib\\datetime.py', 'PYMODULE'),
+ ('_pydatetime',
+ 'D:\\Program Files\\Python312\\Lib\\_pydatetime.py',
+ 'PYMODULE'),
+ ('_strptime', 'D:\\Program Files\\Python312\\Lib\\_strptime.py', 'PYMODULE'),
+ ('socket', 'D:\\Program Files\\Python312\\Lib\\socket.py', 'PYMODULE'),
+ ('selectors', 'D:\\Program Files\\Python312\\Lib\\selectors.py', 'PYMODULE'),
+ ('quopri', 'D:\\Program Files\\Python312\\Lib\\quopri.py', 'PYMODULE'),
+ ('email',
+ 'D:\\Program Files\\Python312\\Lib\\email\\__init__.py',
+ 'PYMODULE'),
+ ('email.parser',
+ 'D:\\Program Files\\Python312\\Lib\\email\\parser.py',
+ 'PYMODULE'),
+ ('email.feedparser',
+ 'D:\\Program Files\\Python312\\Lib\\email\\feedparser.py',
+ 'PYMODULE'),
+ ('csv', 'D:\\Program Files\\Python312\\Lib\\csv.py', 'PYMODULE'),
+ ('tokenize', 'D:\\Program Files\\Python312\\Lib\\tokenize.py', 'PYMODULE'),
+ ('token', 'D:\\Program Files\\Python312\\Lib\\token.py', 'PYMODULE'),
+ ('inspect', 'D:\\Program Files\\Python312\\Lib\\inspect.py', 'PYMODULE'),
+ ('dis', 'D:\\Program Files\\Python312\\Lib\\dis.py', 'PYMODULE'),
+ ('opcode', 'D:\\Program Files\\Python312\\Lib\\opcode.py', 'PYMODULE'),
+ ('ast', 'D:\\Program Files\\Python312\\Lib\\ast.py', 'PYMODULE'),
+ ('importlib.machinery',
+ 'D:\\Program Files\\Python312\\Lib\\importlib\\machinery.py',
+ 'PYMODULE'),
+ ('importlib.util',
+ 'D:\\Program Files\\Python312\\Lib\\importlib\\util.py',
+ 'PYMODULE'),
+ ('importlib',
+ 'D:\\Program Files\\Python312\\Lib\\importlib\\__init__.py',
+ 'PYMODULE'),
+ ('pathlib', 'D:\\Program Files\\Python312\\Lib\\pathlib.py', 'PYMODULE'),
+ ('pkg_resources',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\__init__.py',
+ 'PYMODULE'),
+ ('pkg_resources.extern',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\extern\\__init__.py',
+ 'PYMODULE'),
+ ('packaging.version',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\packaging\\version.py',
+ 'PYMODULE'),
+ ('packaging.utils',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\packaging\\utils.py',
+ 'PYMODULE'),
+ ('packaging.tags',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\packaging\\tags.py',
+ 'PYMODULE'),
+ ('subprocess',
+ 'D:\\Program Files\\Python312\\Lib\\subprocess.py',
+ 'PYMODULE'),
+ ('signal', 'D:\\Program Files\\Python312\\Lib\\signal.py', 'PYMODULE'),
+ ('packaging.specifiers',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\packaging\\specifiers.py',
+ 'PYMODULE'),
+ ('packaging.requirements',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\packaging\\requirements.py',
+ 'PYMODULE'),
+ ('packaging.metadata',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\packaging\\metadata.py',
+ 'PYMODULE'),
+ ('packaging.markers',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\packaging\\markers.py',
+ 'PYMODULE'),
+ ('packaging._tokenizer',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\packaging\\_tokenizer.py',
+ 'PYMODULE'),
+ ('packaging._structures',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\packaging\\_structures.py',
+ 'PYMODULE'),
+ ('packaging._parser',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\packaging\\_parser.py',
+ 'PYMODULE'),
+ ('packaging._musllinux',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\packaging\\_musllinux.py',
+ 'PYMODULE'),
+ ('packaging._manylinux',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\packaging\\_manylinux.py',
+ 'PYMODULE'),
+ ('ctypes',
+ 'D:\\Program Files\\Python312\\Lib\\ctypes\\__init__.py',
+ 'PYMODULE'),
+ ('ctypes._endian',
+ 'D:\\Program Files\\Python312\\Lib\\ctypes\\_endian.py',
+ 'PYMODULE'),
+ ('packaging._elffile',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\packaging\\_elffile.py',
+ 'PYMODULE'),
+ ('packaging',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\packaging\\__init__.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.zipp',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\zipp.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.platformdirs.windows',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\platformdirs\\windows.py',
+ 'PYMODULE'),
+ ('__future__',
+ 'D:\\Program Files\\Python312\\Lib\\__future__.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.platformdirs.version',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\platformdirs\\version.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.platformdirs.unix',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\platformdirs\\unix.py',
+ 'PYMODULE'),
+ ('configparser',
+ 'D:\\Program Files\\Python312\\Lib\\configparser.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.platformdirs.macos',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\platformdirs\\macos.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.platformdirs.api',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\platformdirs\\api.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.platformdirs.android',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\platformdirs\\android.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.platformdirs.__main__',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\platformdirs\\__main__.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.platformdirs',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\platformdirs\\__init__.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.packaging.version',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\packaging\\version.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.packaging.utils',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\packaging\\utils.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.packaging.tags',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\packaging\\tags.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.packaging.specifiers',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\packaging\\specifiers.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.packaging.requirements',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\packaging\\requirements.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.packaging.metadata',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\packaging\\metadata.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.packaging.markers',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\packaging\\markers.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.packaging._tokenizer',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\packaging\\_tokenizer.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.packaging._structures',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\packaging\\_structures.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.packaging._parser',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\packaging\\_parser.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.packaging._musllinux',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\packaging\\_musllinux.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.packaging._manylinux',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\packaging\\_manylinux.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.packaging._elffile',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\packaging\\_elffile.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.packaging',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\packaging\\__init__.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.more_itertools.recipes',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\more_itertools\\recipes.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.more_itertools.more',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\more_itertools\\more.py',
+ 'PYMODULE'),
+ ('queue', 'D:\\Program Files\\Python312\\Lib\\queue.py', 'PYMODULE'),
+ ('pkg_resources._vendor.more_itertools',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\more_itertools\\__init__.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.jaraco.text',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\jaraco\\text\\__init__.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.jaraco.functools',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\jaraco\\functools\\__init__.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.jaraco.context',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\jaraco\\context.py',
+ 'PYMODULE'),
+ ('urllib.request',
+ 'D:\\Program Files\\Python312\\Lib\\urllib\\request.py',
+ 'PYMODULE'),
+ ('getpass', 'D:\\Program Files\\Python312\\Lib\\getpass.py', 'PYMODULE'),
+ ('nturl2path',
+ 'D:\\Program Files\\Python312\\Lib\\nturl2path.py',
+ 'PYMODULE'),
+ ('ftplib', 'D:\\Program Files\\Python312\\Lib\\ftplib.py', 'PYMODULE'),
+ ('netrc', 'D:\\Program Files\\Python312\\Lib\\netrc.py', 'PYMODULE'),
+ ('mimetypes', 'D:\\Program Files\\Python312\\Lib\\mimetypes.py', 'PYMODULE'),
+ ('http.cookiejar',
+ 'D:\\Program Files\\Python312\\Lib\\http\\cookiejar.py',
+ 'PYMODULE'),
+ ('http', 'D:\\Program Files\\Python312\\Lib\\http\\__init__.py', 'PYMODULE'),
+ ('ssl', 'D:\\Program Files\\Python312\\Lib\\ssl.py', 'PYMODULE'),
+ ('urllib.response',
+ 'D:\\Program Files\\Python312\\Lib\\urllib\\response.py',
+ 'PYMODULE'),
+ ('urllib.error',
+ 'D:\\Program Files\\Python312\\Lib\\urllib\\error.py',
+ 'PYMODULE'),
+ ('http.client',
+ 'D:\\Program Files\\Python312\\Lib\\http\\client.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.jaraco',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\jaraco\\__init__.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.importlib_resources.simple',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\importlib_resources\\simple.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.importlib_resources.readers',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\importlib_resources\\readers.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.importlib_resources.abc',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\importlib_resources\\abc.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.importlib_resources._legacy',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\importlib_resources\\_legacy.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.importlib_resources._itertools',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\importlib_resources\\_itertools.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.importlib_resources._compat',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\importlib_resources\\_compat.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.importlib_resources._common',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\importlib_resources\\_common.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.importlib_resources._adapters',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\importlib_resources\\_adapters.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.importlib_resources',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\importlib_resources\\__init__.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.backports.tarfile',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\backports\\tarfile.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.backports',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\backports\\__init__.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\__init__.py',
+ 'PYMODULE'),
+ ('sysconfig', 'D:\\Program Files\\Python312\\Lib\\sysconfig.py', 'PYMODULE'),
+ ('_aix_support',
+ 'D:\\Program Files\\Python312\\Lib\\_aix_support.py',
+ 'PYMODULE'),
+ ('plistlib', 'D:\\Program Files\\Python312\\Lib\\plistlib.py', 'PYMODULE'),
+ ('xml.parsers.expat',
+ 'D:\\Program Files\\Python312\\Lib\\xml\\parsers\\expat.py',
+ 'PYMODULE'),
+ ('xml.parsers',
+ 'D:\\Program Files\\Python312\\Lib\\xml\\parsers\\__init__.py',
+ 'PYMODULE'),
+ ('xml', 'D:\\Program Files\\Python312\\Lib\\xml\\__init__.py', 'PYMODULE'),
+ ('xml.sax.expatreader',
+ 'D:\\Program Files\\Python312\\Lib\\xml\\sax\\expatreader.py',
+ 'PYMODULE'),
+ ('xml.sax.saxutils',
+ 'D:\\Program Files\\Python312\\Lib\\xml\\sax\\saxutils.py',
+ 'PYMODULE'),
+ ('xml.sax',
+ 'D:\\Program Files\\Python312\\Lib\\xml\\sax\\__init__.py',
+ 'PYMODULE'),
+ ('xml.sax.handler',
+ 'D:\\Program Files\\Python312\\Lib\\xml\\sax\\handler.py',
+ 'PYMODULE'),
+ ('xml.sax._exceptions',
+ 'D:\\Program Files\\Python312\\Lib\\xml\\sax\\_exceptions.py',
+ 'PYMODULE'),
+ ('xml.sax.xmlreader',
+ 'D:\\Program Files\\Python312\\Lib\\xml\\sax\\xmlreader.py',
+ 'PYMODULE'),
+ ('platform', 'D:\\Program Files\\Python312\\Lib\\platform.py', 'PYMODULE'),
+ ('_py_abc', 'D:\\Program Files\\Python312\\Lib\\_py_abc.py', 'PYMODULE'),
+ ('tracemalloc',
+ 'D:\\Program Files\\Python312\\Lib\\tracemalloc.py',
+ 'PYMODULE'),
+ ('stringprep',
+ 'D:\\Program Files\\Python312\\Lib\\stringprep.py',
+ 'PYMODULE'),
+ ('scoreboard', 'D:\\pythonProject\\test1\\scoreboard.py', 'PYMODULE'),
+ ('button', 'D:\\pythonProject\\test1\\button.py', 'PYMODULE'),
+ ('game_stats', 'D:\\pythonProject\\test1\\game_stats.py', 'PYMODULE'),
+ ('game_functions', 'D:\\pythonProject\\test1\\game_functions.py', 'PYMODULE'),
+ ('alien', 'D:\\pythonProject\\test1\\alien.py', 'PYMODULE'),
+ ('bullet', 'D:\\pythonProject\\test1\\bullet.py', 'PYMODULE'),
+ ('pygame.sprite',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\sprite.py',
+ 'PYMODULE'),
+ ('settings', 'D:\\pythonProject\\test1\\settings.py', 'PYMODULE'),
+ ('ship', 'D:\\pythonProject\\test1\\ship.py', 'PYMODULE'),
+ ('pygame',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\__init__.py',
+ 'PYMODULE'),
+ ('pygame.colordict',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\colordict.py',
+ 'PYMODULE'),
+ ('pygame.macosx',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\macosx.py',
+ 'PYMODULE'),
+ ('pygame.pkgdata',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\pkgdata.py',
+ 'PYMODULE'),
+ ('pygame.fastevent',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\fastevent.py',
+ 'PYMODULE'),
+ ('pygame.sndarray',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\sndarray.py',
+ 'PYMODULE'),
+ ('pygame.surfarray',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\surfarray.py',
+ 'PYMODULE'),
+ ('pygame.sysfont',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\sysfont.py',
+ 'PYMODULE'),
+ ('pygame.ftfont',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\ftfont.py',
+ 'PYMODULE'),
+ ('pygame.threads',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\threads\\__init__.py',
+ 'PYMODULE'),
+ ('pygame.cursors',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\cursors.py',
+ 'PYMODULE'),
+ ('pygame.version',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\version.py',
+ 'PYMODULE')],
+ [('python312.dll', 'D:\\Program Files\\Python312\\python312.dll', 'BINARY'),
+ ('SDL2_mixer.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\SDL2_mixer.dll',
+ 'BINARY'),
+ ('libmodplug-1.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\libmodplug-1.dll',
+ 'BINARY'),
+ ('libopusfile-0.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\libopusfile-0.dll',
+ 'BINARY'),
+ ('SDL2_ttf.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\SDL2_ttf.dll',
+ 'BINARY'),
+ ('SDL2_image.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\SDL2_image.dll',
+ 'BINARY'),
+ ('freetype.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\freetype.dll',
+ 'BINARY'),
+ ('portmidi.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\portmidi.dll',
+ 'BINARY'),
+ ('libopus-0.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\libopus-0.dll',
+ 'BINARY'),
+ ('libpng16-16.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\libpng16-16.dll',
+ 'BINARY'),
+ ('zlib1.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\zlib1.dll',
+ 'BINARY'),
+ ('libtiff-5.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\libtiff-5.dll',
+ 'BINARY'),
+ ('SDL2.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\SDL2.dll',
+ 'BINARY'),
+ ('libogg-0.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\libogg-0.dll',
+ 'BINARY'),
+ ('libwebp-7.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\libwebp-7.dll',
+ 'BINARY'),
+ ('libjpeg-9.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\libjpeg-9.dll',
+ 'BINARY'),
+ ('_decimal.pyd',
+ 'D:\\Program Files\\Python312\\DLLs\\_decimal.pyd',
+ 'EXTENSION'),
+ ('_hashlib.pyd',
+ 'D:\\Program Files\\Python312\\DLLs\\_hashlib.pyd',
+ 'EXTENSION'),
+ ('_lzma.pyd', 'D:\\Program Files\\Python312\\DLLs\\_lzma.pyd', 'EXTENSION'),
+ ('_bz2.pyd', 'D:\\Program Files\\Python312\\DLLs\\_bz2.pyd', 'EXTENSION'),
+ ('unicodedata.pyd',
+ 'D:\\Program Files\\Python312\\DLLs\\unicodedata.pyd',
+ 'EXTENSION'),
+ ('select.pyd', 'D:\\Program Files\\Python312\\DLLs\\select.pyd', 'EXTENSION'),
+ ('_socket.pyd',
+ 'D:\\Program Files\\Python312\\DLLs\\_socket.pyd',
+ 'EXTENSION'),
+ ('_ctypes.pyd',
+ 'D:\\Program Files\\Python312\\DLLs\\_ctypes.pyd',
+ 'EXTENSION'),
+ ('_queue.pyd', 'D:\\Program Files\\Python312\\DLLs\\_queue.pyd', 'EXTENSION'),
+ ('_ssl.pyd', 'D:\\Program Files\\Python312\\DLLs\\_ssl.pyd', 'EXTENSION'),
+ ('pyexpat.pyd',
+ 'D:\\Program Files\\Python312\\DLLs\\pyexpat.pyd',
+ 'EXTENSION'),
+ ('_wmi.pyd', 'D:\\Program Files\\Python312\\DLLs\\_wmi.pyd', 'EXTENSION'),
+ ('pygame\\font.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\font.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\mask.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\mask.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\time.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\time.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\rect.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\rect.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\imageext.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\imageext.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\scrap.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\scrap.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\mixer.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\mixer.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\mixer_music.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\mixer_music.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\_freetype.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\_freetype.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\transform.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\transform.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\pixelarray.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\pixelarray.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\surface.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\surface.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\pixelcopy.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\pixelcopy.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\mouse.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\mouse.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\key.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\key.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\joystick.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\joystick.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\image.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\image.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\event.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\event.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\draw.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\draw.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\display.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\display.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\math.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\math.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\bufferproxy.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\bufferproxy.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\color.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\color.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\surflock.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\surflock.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\rwobject.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\rwobject.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\constants.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\constants.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\base.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\base.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('api-ms-win-crt-process-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-crt-process-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-crt-string-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-crt-string-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-crt-runtime-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-crt-runtime-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-crt-convert-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-crt-convert-l1-1-0.dll',
+ 'BINARY'),
+ ('VCRUNTIME140.dll',
+ 'D:\\Program Files\\Python312\\VCRUNTIME140.dll',
+ 'BINARY'),
+ ('api-ms-win-crt-conio-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-crt-conio-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-crt-stdio-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-crt-stdio-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-crt-environment-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-crt-environment-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-crt-filesystem-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-crt-filesystem-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-crt-heap-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-crt-heap-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-crt-math-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-crt-math-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-crt-time-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-crt-time-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-crt-locale-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-crt-locale-l1-1-0.dll',
+ 'BINARY'),
+ ('pygame\\SDL2.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\SDL2.dll',
+ 'BINARY'),
+ ('pygame\\libogg-0.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\libogg-0.dll',
+ 'BINARY'),
+ ('pygame\\libopus-0.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\libopus-0.dll',
+ 'BINARY'),
+ ('api-ms-win-crt-utility-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-crt-utility-l1-1-0.dll',
+ 'BINARY'),
+ ('pygame\\zlib1.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\zlib1.dll',
+ 'BINARY'),
+ ('pygame\\libjpeg-9.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\libjpeg-9.dll',
+ 'BINARY'),
+ ('libcrypto-3.dll',
+ 'D:\\Program Files\\Python312\\DLLs\\libcrypto-3.dll',
+ 'BINARY'),
+ ('libffi-8.dll',
+ 'D:\\Program Files\\Python312\\DLLs\\libffi-8.dll',
+ 'BINARY'),
+ ('libssl-3.dll',
+ 'D:\\Program Files\\Python312\\DLLs\\libssl-3.dll',
+ 'BINARY'),
+ ('VCRUNTIME140_1.dll',
+ 'D:\\Program Files\\Python312\\VCRUNTIME140_1.dll',
+ 'BINARY'),
+ ('pygame\\SDL2_ttf.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\SDL2_ttf.dll',
+ 'BINARY'),
+ ('pygame\\SDL2_image.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\SDL2_image.dll',
+ 'BINARY'),
+ ('pygame\\libpng16-16.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\libpng16-16.dll',
+ 'BINARY'),
+ ('pygame\\SDL2_mixer.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\SDL2_mixer.dll',
+ 'BINARY'),
+ ('pygame\\freetype.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\freetype.dll',
+ 'BINARY'),
+ ('ucrtbase.dll', 'C:\\windows\\system32\\ucrtbase.dll', 'BINARY'),
+ ('api-ms-win-core-memory-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-memory-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-synch-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-synch-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-datetime-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-datetime-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-timezone-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-timezone-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-heap-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-heap-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-processthreads-l1-1-1.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-processthreads-l1-1-1.dll',
+ 'BINARY'),
+ ('api-ms-win-core-file-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-file-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-processthreads-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-processthreads-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-processenvironment-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-processenvironment-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-util-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-util-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-synch-l1-2-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-synch-l1-2-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-console-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-console-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-errorhandling-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-errorhandling-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-libraryloader-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-libraryloader-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-sysinfo-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-sysinfo-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-namedpipe-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-namedpipe-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-localization-l1-2-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-localization-l1-2-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-file-l1-2-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-file-l1-2-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-string-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-string-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-profile-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-profile-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-file-l2-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-file-l2-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-debug-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-debug-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-interlocked-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-interlocked-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-handle-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-handle-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-rtlsupport-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-rtlsupport-l1-1-0.dll',
+ 'BINARY')],
+ [],
+ [],
+ [('base_library.zip',
+ 'D:\\pythonProject\\test1\\build\\alien_invation\\base_library.zip',
+ 'DATA'),
+ ('pygame\\freesansbold.ttf',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\freesansbold.ttf',
+ 'DATA'),
+ ('pygame\\pygame_icon.bmp',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\pygame_icon.bmp',
+ 'DATA')])
diff --git a/build/alien_invation/EXE-00.toc b/build/alien_invation/EXE-00.toc
new file mode 100644
index 0000000..8ba2662
--- /dev/null
+++ b/build/alien_invation/EXE-00.toc
@@ -0,0 +1,392 @@
+('D:\\pythonProject\\test1\\dist\\alien_invation.exe',
+ True,
+ False,
+ False,
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\PyInstaller\\bootloader\\images\\icon-console.ico',
+ None,
+ False,
+ False,
+ b'\n\n \n \n \n \n \n \n \n '
+ b'\n <'
+ b'application>\n \n \n '
+ b' \n \n \n \n <'
+ b'/compatibility>\n '
+ b'\n \n true\n \n \n \n \n \n \n \n',
+ True,
+ False,
+ None,
+ None,
+ None,
+ 'D:\\pythonProject\\test1\\build\\alien_invation\\alien_invation.pkg',
+ [('pyi-contents-directory _internal', '', 'OPTION'),
+ ('PYZ-00.pyz',
+ 'D:\\pythonProject\\test1\\build\\alien_invation\\PYZ-00.pyz',
+ 'PYZ'),
+ ('struct',
+ 'D:\\pythonProject\\test1\\build\\alien_invation\\localpycs\\struct.pyc',
+ 'PYMODULE'),
+ ('pyimod01_archive',
+ 'D:\\pythonProject\\test1\\build\\alien_invation\\localpycs\\pyimod01_archive.pyc',
+ 'PYMODULE'),
+ ('pyimod02_importers',
+ 'D:\\pythonProject\\test1\\build\\alien_invation\\localpycs\\pyimod02_importers.pyc',
+ 'PYMODULE'),
+ ('pyimod03_ctypes',
+ 'D:\\pythonProject\\test1\\build\\alien_invation\\localpycs\\pyimod03_ctypes.pyc',
+ 'PYMODULE'),
+ ('pyimod04_pywin32',
+ 'D:\\pythonProject\\test1\\build\\alien_invation\\localpycs\\pyimod04_pywin32.pyc',
+ 'PYMODULE'),
+ ('pyiboot01_bootstrap',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\PyInstaller\\loader\\pyiboot01_bootstrap.py',
+ 'PYSOURCE'),
+ ('pyi_rth_inspect',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\PyInstaller\\hooks\\rthooks\\pyi_rth_inspect.py',
+ 'PYSOURCE'),
+ ('pyi_rth_pkgres',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\PyInstaller\\hooks\\rthooks\\pyi_rth_pkgres.py',
+ 'PYSOURCE'),
+ ('pyi_rth_pkgutil',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\PyInstaller\\hooks\\rthooks\\pyi_rth_pkgutil.py',
+ 'PYSOURCE'),
+ ('alien_invation', 'D:\\pythonProject\\test1\\alien_invation.py', 'PYSOURCE'),
+ ('python312.dll', 'D:\\Program Files\\Python312\\python312.dll', 'BINARY'),
+ ('SDL2_mixer.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\SDL2_mixer.dll',
+ 'BINARY'),
+ ('libmodplug-1.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\libmodplug-1.dll',
+ 'BINARY'),
+ ('libopusfile-0.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\libopusfile-0.dll',
+ 'BINARY'),
+ ('SDL2_ttf.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\SDL2_ttf.dll',
+ 'BINARY'),
+ ('SDL2_image.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\SDL2_image.dll',
+ 'BINARY'),
+ ('freetype.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\freetype.dll',
+ 'BINARY'),
+ ('portmidi.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\portmidi.dll',
+ 'BINARY'),
+ ('libopus-0.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\libopus-0.dll',
+ 'BINARY'),
+ ('libpng16-16.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\libpng16-16.dll',
+ 'BINARY'),
+ ('zlib1.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\zlib1.dll',
+ 'BINARY'),
+ ('libtiff-5.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\libtiff-5.dll',
+ 'BINARY'),
+ ('SDL2.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\SDL2.dll',
+ 'BINARY'),
+ ('libogg-0.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\libogg-0.dll',
+ 'BINARY'),
+ ('libwebp-7.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\libwebp-7.dll',
+ 'BINARY'),
+ ('libjpeg-9.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\libjpeg-9.dll',
+ 'BINARY'),
+ ('_decimal.pyd',
+ 'D:\\Program Files\\Python312\\DLLs\\_decimal.pyd',
+ 'EXTENSION'),
+ ('_hashlib.pyd',
+ 'D:\\Program Files\\Python312\\DLLs\\_hashlib.pyd',
+ 'EXTENSION'),
+ ('_lzma.pyd', 'D:\\Program Files\\Python312\\DLLs\\_lzma.pyd', 'EXTENSION'),
+ ('_bz2.pyd', 'D:\\Program Files\\Python312\\DLLs\\_bz2.pyd', 'EXTENSION'),
+ ('unicodedata.pyd',
+ 'D:\\Program Files\\Python312\\DLLs\\unicodedata.pyd',
+ 'EXTENSION'),
+ ('select.pyd', 'D:\\Program Files\\Python312\\DLLs\\select.pyd', 'EXTENSION'),
+ ('_socket.pyd',
+ 'D:\\Program Files\\Python312\\DLLs\\_socket.pyd',
+ 'EXTENSION'),
+ ('_ctypes.pyd',
+ 'D:\\Program Files\\Python312\\DLLs\\_ctypes.pyd',
+ 'EXTENSION'),
+ ('_queue.pyd', 'D:\\Program Files\\Python312\\DLLs\\_queue.pyd', 'EXTENSION'),
+ ('_ssl.pyd', 'D:\\Program Files\\Python312\\DLLs\\_ssl.pyd', 'EXTENSION'),
+ ('pyexpat.pyd',
+ 'D:\\Program Files\\Python312\\DLLs\\pyexpat.pyd',
+ 'EXTENSION'),
+ ('_wmi.pyd', 'D:\\Program Files\\Python312\\DLLs\\_wmi.pyd', 'EXTENSION'),
+ ('pygame\\font.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\font.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\mask.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\mask.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\time.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\time.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\rect.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\rect.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\imageext.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\imageext.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\scrap.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\scrap.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\mixer.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\mixer.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\mixer_music.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\mixer_music.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\_freetype.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\_freetype.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\transform.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\transform.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\pixelarray.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\pixelarray.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\surface.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\surface.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\pixelcopy.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\pixelcopy.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\mouse.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\mouse.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\key.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\key.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\joystick.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\joystick.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\image.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\image.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\event.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\event.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\draw.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\draw.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\display.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\display.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\math.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\math.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\bufferproxy.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\bufferproxy.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\color.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\color.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\surflock.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\surflock.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\rwobject.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\rwobject.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\constants.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\constants.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\base.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\base.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('api-ms-win-crt-process-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-crt-process-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-crt-string-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-crt-string-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-crt-runtime-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-crt-runtime-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-crt-convert-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-crt-convert-l1-1-0.dll',
+ 'BINARY'),
+ ('VCRUNTIME140.dll',
+ 'D:\\Program Files\\Python312\\VCRUNTIME140.dll',
+ 'BINARY'),
+ ('api-ms-win-crt-conio-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-crt-conio-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-crt-stdio-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-crt-stdio-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-crt-environment-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-crt-environment-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-crt-filesystem-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-crt-filesystem-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-crt-heap-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-crt-heap-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-crt-math-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-crt-math-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-crt-time-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-crt-time-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-crt-locale-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-crt-locale-l1-1-0.dll',
+ 'BINARY'),
+ ('pygame\\SDL2.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\SDL2.dll',
+ 'BINARY'),
+ ('pygame\\libogg-0.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\libogg-0.dll',
+ 'BINARY'),
+ ('pygame\\libopus-0.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\libopus-0.dll',
+ 'BINARY'),
+ ('api-ms-win-crt-utility-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-crt-utility-l1-1-0.dll',
+ 'BINARY'),
+ ('pygame\\zlib1.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\zlib1.dll',
+ 'BINARY'),
+ ('pygame\\libjpeg-9.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\libjpeg-9.dll',
+ 'BINARY'),
+ ('libcrypto-3.dll',
+ 'D:\\Program Files\\Python312\\DLLs\\libcrypto-3.dll',
+ 'BINARY'),
+ ('libffi-8.dll',
+ 'D:\\Program Files\\Python312\\DLLs\\libffi-8.dll',
+ 'BINARY'),
+ ('libssl-3.dll',
+ 'D:\\Program Files\\Python312\\DLLs\\libssl-3.dll',
+ 'BINARY'),
+ ('VCRUNTIME140_1.dll',
+ 'D:\\Program Files\\Python312\\VCRUNTIME140_1.dll',
+ 'BINARY'),
+ ('pygame\\SDL2_ttf.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\SDL2_ttf.dll',
+ 'BINARY'),
+ ('pygame\\SDL2_image.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\SDL2_image.dll',
+ 'BINARY'),
+ ('pygame\\libpng16-16.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\libpng16-16.dll',
+ 'BINARY'),
+ ('pygame\\SDL2_mixer.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\SDL2_mixer.dll',
+ 'BINARY'),
+ ('pygame\\freetype.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\freetype.dll',
+ 'BINARY'),
+ ('ucrtbase.dll', 'C:\\windows\\system32\\ucrtbase.dll', 'BINARY'),
+ ('api-ms-win-core-memory-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-memory-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-synch-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-synch-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-datetime-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-datetime-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-timezone-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-timezone-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-heap-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-heap-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-processthreads-l1-1-1.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-processthreads-l1-1-1.dll',
+ 'BINARY'),
+ ('api-ms-win-core-file-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-file-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-processthreads-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-processthreads-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-processenvironment-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-processenvironment-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-util-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-util-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-synch-l1-2-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-synch-l1-2-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-console-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-console-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-errorhandling-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-errorhandling-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-libraryloader-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-libraryloader-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-sysinfo-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-sysinfo-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-namedpipe-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-namedpipe-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-localization-l1-2-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-localization-l1-2-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-file-l1-2-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-file-l1-2-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-string-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-string-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-profile-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-profile-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-file-l2-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-file-l2-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-debug-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-debug-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-interlocked-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-interlocked-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-handle-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-handle-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-rtlsupport-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-rtlsupport-l1-1-0.dll',
+ 'BINARY'),
+ ('base_library.zip',
+ 'D:\\pythonProject\\test1\\build\\alien_invation\\base_library.zip',
+ 'DATA'),
+ ('pygame\\freesansbold.ttf',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\freesansbold.ttf',
+ 'DATA'),
+ ('pygame\\pygame_icon.bmp',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\pygame_icon.bmp',
+ 'DATA')],
+ [],
+ False,
+ False,
+ 1716390602,
+ [('run.exe',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\PyInstaller\\bootloader\\Windows-64bit-intel\\run.exe',
+ 'EXECUTABLE')],
+ 'D:\\Program Files\\Python312\\python312.dll')
diff --git a/build/alien_invation/PKG-00.toc b/build/alien_invation/PKG-00.toc
new file mode 100644
index 0000000..7315dc8
--- /dev/null
+++ b/build/alien_invation/PKG-00.toc
@@ -0,0 +1,370 @@
+('D:\\pythonProject\\test1\\build\\alien_invation\\alien_invation.pkg',
+ {'BINARY': True,
+ 'DATA': True,
+ 'EXECUTABLE': True,
+ 'EXTENSION': True,
+ 'PYMODULE': True,
+ 'PYSOURCE': True,
+ 'PYZ': False,
+ 'SPLASH': True,
+ 'SYMLINK': False},
+ [('pyi-contents-directory _internal', '', 'OPTION'),
+ ('PYZ-00.pyz',
+ 'D:\\pythonProject\\test1\\build\\alien_invation\\PYZ-00.pyz',
+ 'PYZ'),
+ ('struct',
+ 'D:\\pythonProject\\test1\\build\\alien_invation\\localpycs\\struct.pyc',
+ 'PYMODULE'),
+ ('pyimod01_archive',
+ 'D:\\pythonProject\\test1\\build\\alien_invation\\localpycs\\pyimod01_archive.pyc',
+ 'PYMODULE'),
+ ('pyimod02_importers',
+ 'D:\\pythonProject\\test1\\build\\alien_invation\\localpycs\\pyimod02_importers.pyc',
+ 'PYMODULE'),
+ ('pyimod03_ctypes',
+ 'D:\\pythonProject\\test1\\build\\alien_invation\\localpycs\\pyimod03_ctypes.pyc',
+ 'PYMODULE'),
+ ('pyimod04_pywin32',
+ 'D:\\pythonProject\\test1\\build\\alien_invation\\localpycs\\pyimod04_pywin32.pyc',
+ 'PYMODULE'),
+ ('pyiboot01_bootstrap',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\PyInstaller\\loader\\pyiboot01_bootstrap.py',
+ 'PYSOURCE'),
+ ('pyi_rth_inspect',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\PyInstaller\\hooks\\rthooks\\pyi_rth_inspect.py',
+ 'PYSOURCE'),
+ ('pyi_rth_pkgres',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\PyInstaller\\hooks\\rthooks\\pyi_rth_pkgres.py',
+ 'PYSOURCE'),
+ ('pyi_rth_pkgutil',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\PyInstaller\\hooks\\rthooks\\pyi_rth_pkgutil.py',
+ 'PYSOURCE'),
+ ('alien_invation', 'D:\\pythonProject\\test1\\alien_invation.py', 'PYSOURCE'),
+ ('python312.dll', 'D:\\Program Files\\Python312\\python312.dll', 'BINARY'),
+ ('SDL2_mixer.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\SDL2_mixer.dll',
+ 'BINARY'),
+ ('libmodplug-1.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\libmodplug-1.dll',
+ 'BINARY'),
+ ('libopusfile-0.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\libopusfile-0.dll',
+ 'BINARY'),
+ ('SDL2_ttf.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\SDL2_ttf.dll',
+ 'BINARY'),
+ ('SDL2_image.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\SDL2_image.dll',
+ 'BINARY'),
+ ('freetype.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\freetype.dll',
+ 'BINARY'),
+ ('portmidi.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\portmidi.dll',
+ 'BINARY'),
+ ('libopus-0.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\libopus-0.dll',
+ 'BINARY'),
+ ('libpng16-16.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\libpng16-16.dll',
+ 'BINARY'),
+ ('zlib1.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\zlib1.dll',
+ 'BINARY'),
+ ('libtiff-5.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\libtiff-5.dll',
+ 'BINARY'),
+ ('SDL2.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\SDL2.dll',
+ 'BINARY'),
+ ('libogg-0.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\libogg-0.dll',
+ 'BINARY'),
+ ('libwebp-7.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\libwebp-7.dll',
+ 'BINARY'),
+ ('libjpeg-9.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\libjpeg-9.dll',
+ 'BINARY'),
+ ('_decimal.pyd',
+ 'D:\\Program Files\\Python312\\DLLs\\_decimal.pyd',
+ 'EXTENSION'),
+ ('_hashlib.pyd',
+ 'D:\\Program Files\\Python312\\DLLs\\_hashlib.pyd',
+ 'EXTENSION'),
+ ('_lzma.pyd', 'D:\\Program Files\\Python312\\DLLs\\_lzma.pyd', 'EXTENSION'),
+ ('_bz2.pyd', 'D:\\Program Files\\Python312\\DLLs\\_bz2.pyd', 'EXTENSION'),
+ ('unicodedata.pyd',
+ 'D:\\Program Files\\Python312\\DLLs\\unicodedata.pyd',
+ 'EXTENSION'),
+ ('select.pyd', 'D:\\Program Files\\Python312\\DLLs\\select.pyd', 'EXTENSION'),
+ ('_socket.pyd',
+ 'D:\\Program Files\\Python312\\DLLs\\_socket.pyd',
+ 'EXTENSION'),
+ ('_ctypes.pyd',
+ 'D:\\Program Files\\Python312\\DLLs\\_ctypes.pyd',
+ 'EXTENSION'),
+ ('_queue.pyd', 'D:\\Program Files\\Python312\\DLLs\\_queue.pyd', 'EXTENSION'),
+ ('_ssl.pyd', 'D:\\Program Files\\Python312\\DLLs\\_ssl.pyd', 'EXTENSION'),
+ ('pyexpat.pyd',
+ 'D:\\Program Files\\Python312\\DLLs\\pyexpat.pyd',
+ 'EXTENSION'),
+ ('_wmi.pyd', 'D:\\Program Files\\Python312\\DLLs\\_wmi.pyd', 'EXTENSION'),
+ ('pygame\\font.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\font.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\mask.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\mask.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\time.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\time.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\rect.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\rect.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\imageext.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\imageext.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\scrap.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\scrap.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\mixer.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\mixer.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\mixer_music.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\mixer_music.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\_freetype.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\_freetype.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\transform.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\transform.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\pixelarray.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\pixelarray.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\surface.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\surface.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\pixelcopy.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\pixelcopy.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\mouse.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\mouse.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\key.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\key.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\joystick.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\joystick.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\image.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\image.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\event.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\event.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\draw.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\draw.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\display.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\display.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\math.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\math.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\bufferproxy.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\bufferproxy.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\color.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\color.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\surflock.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\surflock.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\rwobject.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\rwobject.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\constants.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\constants.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('pygame\\base.cp312-win_amd64.pyd',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\base.cp312-win_amd64.pyd',
+ 'EXTENSION'),
+ ('api-ms-win-crt-process-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-crt-process-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-crt-string-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-crt-string-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-crt-runtime-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-crt-runtime-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-crt-convert-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-crt-convert-l1-1-0.dll',
+ 'BINARY'),
+ ('VCRUNTIME140.dll',
+ 'D:\\Program Files\\Python312\\VCRUNTIME140.dll',
+ 'BINARY'),
+ ('api-ms-win-crt-conio-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-crt-conio-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-crt-stdio-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-crt-stdio-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-crt-environment-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-crt-environment-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-crt-filesystem-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-crt-filesystem-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-crt-heap-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-crt-heap-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-crt-math-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-crt-math-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-crt-time-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-crt-time-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-crt-locale-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-crt-locale-l1-1-0.dll',
+ 'BINARY'),
+ ('pygame\\SDL2.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\SDL2.dll',
+ 'BINARY'),
+ ('pygame\\libogg-0.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\libogg-0.dll',
+ 'BINARY'),
+ ('pygame\\libopus-0.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\libopus-0.dll',
+ 'BINARY'),
+ ('api-ms-win-crt-utility-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-crt-utility-l1-1-0.dll',
+ 'BINARY'),
+ ('pygame\\zlib1.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\zlib1.dll',
+ 'BINARY'),
+ ('pygame\\libjpeg-9.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\libjpeg-9.dll',
+ 'BINARY'),
+ ('libcrypto-3.dll',
+ 'D:\\Program Files\\Python312\\DLLs\\libcrypto-3.dll',
+ 'BINARY'),
+ ('libffi-8.dll',
+ 'D:\\Program Files\\Python312\\DLLs\\libffi-8.dll',
+ 'BINARY'),
+ ('libssl-3.dll',
+ 'D:\\Program Files\\Python312\\DLLs\\libssl-3.dll',
+ 'BINARY'),
+ ('VCRUNTIME140_1.dll',
+ 'D:\\Program Files\\Python312\\VCRUNTIME140_1.dll',
+ 'BINARY'),
+ ('pygame\\SDL2_ttf.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\SDL2_ttf.dll',
+ 'BINARY'),
+ ('pygame\\SDL2_image.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\SDL2_image.dll',
+ 'BINARY'),
+ ('pygame\\libpng16-16.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\libpng16-16.dll',
+ 'BINARY'),
+ ('pygame\\SDL2_mixer.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\SDL2_mixer.dll',
+ 'BINARY'),
+ ('pygame\\freetype.dll',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\freetype.dll',
+ 'BINARY'),
+ ('ucrtbase.dll', 'C:\\windows\\system32\\ucrtbase.dll', 'BINARY'),
+ ('api-ms-win-core-memory-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-memory-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-synch-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-synch-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-datetime-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-datetime-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-timezone-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-timezone-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-heap-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-heap-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-processthreads-l1-1-1.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-processthreads-l1-1-1.dll',
+ 'BINARY'),
+ ('api-ms-win-core-file-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-file-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-processthreads-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-processthreads-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-processenvironment-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-processenvironment-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-util-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-util-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-synch-l1-2-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-synch-l1-2-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-console-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-console-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-errorhandling-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-errorhandling-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-libraryloader-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-libraryloader-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-sysinfo-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-sysinfo-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-namedpipe-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-namedpipe-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-localization-l1-2-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-localization-l1-2-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-file-l1-2-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-file-l1-2-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-string-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-string-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-profile-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-profile-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-file-l2-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-file-l2-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-debug-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-debug-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-interlocked-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-interlocked-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-handle-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-handle-l1-1-0.dll',
+ 'BINARY'),
+ ('api-ms-win-core-rtlsupport-l1-1-0.dll',
+ 'C:\\windows\\system32\\api-ms-win-core-rtlsupport-l1-1-0.dll',
+ 'BINARY'),
+ ('base_library.zip',
+ 'D:\\pythonProject\\test1\\build\\alien_invation\\base_library.zip',
+ 'DATA'),
+ ('pygame\\freesansbold.ttf',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\freesansbold.ttf',
+ 'DATA'),
+ ('pygame\\pygame_icon.bmp',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\pygame_icon.bmp',
+ 'DATA')],
+ 'python312.dll',
+ False,
+ False,
+ False,
+ [],
+ None,
+ None,
+ None)
diff --git a/build/alien_invation/PYZ-00.pyz b/build/alien_invation/PYZ-00.pyz
new file mode 100644
index 0000000..ac10791
Binary files /dev/null and b/build/alien_invation/PYZ-00.pyz differ
diff --git a/build/alien_invation/PYZ-00.toc b/build/alien_invation/PYZ-00.toc
new file mode 100644
index 0000000..2ebe216
--- /dev/null
+++ b/build/alien_invation/PYZ-00.toc
@@ -0,0 +1,519 @@
+('D:\\pythonProject\\test1\\build\\alien_invation\\PYZ-00.pyz',
+ [('__future__',
+ 'D:\\Program Files\\Python312\\Lib\\__future__.py',
+ 'PYMODULE'),
+ ('_aix_support',
+ 'D:\\Program Files\\Python312\\Lib\\_aix_support.py',
+ 'PYMODULE'),
+ ('_compat_pickle',
+ 'D:\\Program Files\\Python312\\Lib\\_compat_pickle.py',
+ 'PYMODULE'),
+ ('_compression',
+ 'D:\\Program Files\\Python312\\Lib\\_compression.py',
+ 'PYMODULE'),
+ ('_py_abc', 'D:\\Program Files\\Python312\\Lib\\_py_abc.py', 'PYMODULE'),
+ ('_pydatetime',
+ 'D:\\Program Files\\Python312\\Lib\\_pydatetime.py',
+ 'PYMODULE'),
+ ('_pydecimal',
+ 'D:\\Program Files\\Python312\\Lib\\_pydecimal.py',
+ 'PYMODULE'),
+ ('_pyi_rth_utils',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\PyInstaller\\fake-modules\\_pyi_rth_utils\\__init__.py',
+ 'PYMODULE'),
+ ('_strptime', 'D:\\Program Files\\Python312\\Lib\\_strptime.py', 'PYMODULE'),
+ ('_threading_local',
+ 'D:\\Program Files\\Python312\\Lib\\_threading_local.py',
+ 'PYMODULE'),
+ ('alien', 'D:\\pythonProject\\test1\\alien.py', 'PYMODULE'),
+ ('argparse', 'D:\\Program Files\\Python312\\Lib\\argparse.py', 'PYMODULE'),
+ ('ast', 'D:\\Program Files\\Python312\\Lib\\ast.py', 'PYMODULE'),
+ ('base64', 'D:\\Program Files\\Python312\\Lib\\base64.py', 'PYMODULE'),
+ ('bisect', 'D:\\Program Files\\Python312\\Lib\\bisect.py', 'PYMODULE'),
+ ('bullet', 'D:\\pythonProject\\test1\\bullet.py', 'PYMODULE'),
+ ('button', 'D:\\pythonProject\\test1\\button.py', 'PYMODULE'),
+ ('bz2', 'D:\\Program Files\\Python312\\Lib\\bz2.py', 'PYMODULE'),
+ ('calendar', 'D:\\Program Files\\Python312\\Lib\\calendar.py', 'PYMODULE'),
+ ('configparser',
+ 'D:\\Program Files\\Python312\\Lib\\configparser.py',
+ 'PYMODULE'),
+ ('contextlib',
+ 'D:\\Program Files\\Python312\\Lib\\contextlib.py',
+ 'PYMODULE'),
+ ('contextvars',
+ 'D:\\Program Files\\Python312\\Lib\\contextvars.py',
+ 'PYMODULE'),
+ ('copy', 'D:\\Program Files\\Python312\\Lib\\copy.py', 'PYMODULE'),
+ ('csv', 'D:\\Program Files\\Python312\\Lib\\csv.py', 'PYMODULE'),
+ ('ctypes',
+ 'D:\\Program Files\\Python312\\Lib\\ctypes\\__init__.py',
+ 'PYMODULE'),
+ ('ctypes._endian',
+ 'D:\\Program Files\\Python312\\Lib\\ctypes\\_endian.py',
+ 'PYMODULE'),
+ ('dataclasses',
+ 'D:\\Program Files\\Python312\\Lib\\dataclasses.py',
+ 'PYMODULE'),
+ ('datetime', 'D:\\Program Files\\Python312\\Lib\\datetime.py', 'PYMODULE'),
+ ('decimal', 'D:\\Program Files\\Python312\\Lib\\decimal.py', 'PYMODULE'),
+ ('dis', 'D:\\Program Files\\Python312\\Lib\\dis.py', 'PYMODULE'),
+ ('email',
+ 'D:\\Program Files\\Python312\\Lib\\email\\__init__.py',
+ 'PYMODULE'),
+ ('email._encoded_words',
+ 'D:\\Program Files\\Python312\\Lib\\email\\_encoded_words.py',
+ 'PYMODULE'),
+ ('email._header_value_parser',
+ 'D:\\Program Files\\Python312\\Lib\\email\\_header_value_parser.py',
+ 'PYMODULE'),
+ ('email._parseaddr',
+ 'D:\\Program Files\\Python312\\Lib\\email\\_parseaddr.py',
+ 'PYMODULE'),
+ ('email._policybase',
+ 'D:\\Program Files\\Python312\\Lib\\email\\_policybase.py',
+ 'PYMODULE'),
+ ('email.base64mime',
+ 'D:\\Program Files\\Python312\\Lib\\email\\base64mime.py',
+ 'PYMODULE'),
+ ('email.charset',
+ 'D:\\Program Files\\Python312\\Lib\\email\\charset.py',
+ 'PYMODULE'),
+ ('email.contentmanager',
+ 'D:\\Program Files\\Python312\\Lib\\email\\contentmanager.py',
+ 'PYMODULE'),
+ ('email.encoders',
+ 'D:\\Program Files\\Python312\\Lib\\email\\encoders.py',
+ 'PYMODULE'),
+ ('email.errors',
+ 'D:\\Program Files\\Python312\\Lib\\email\\errors.py',
+ 'PYMODULE'),
+ ('email.feedparser',
+ 'D:\\Program Files\\Python312\\Lib\\email\\feedparser.py',
+ 'PYMODULE'),
+ ('email.generator',
+ 'D:\\Program Files\\Python312\\Lib\\email\\generator.py',
+ 'PYMODULE'),
+ ('email.header',
+ 'D:\\Program Files\\Python312\\Lib\\email\\header.py',
+ 'PYMODULE'),
+ ('email.headerregistry',
+ 'D:\\Program Files\\Python312\\Lib\\email\\headerregistry.py',
+ 'PYMODULE'),
+ ('email.iterators',
+ 'D:\\Program Files\\Python312\\Lib\\email\\iterators.py',
+ 'PYMODULE'),
+ ('email.message',
+ 'D:\\Program Files\\Python312\\Lib\\email\\message.py',
+ 'PYMODULE'),
+ ('email.parser',
+ 'D:\\Program Files\\Python312\\Lib\\email\\parser.py',
+ 'PYMODULE'),
+ ('email.policy',
+ 'D:\\Program Files\\Python312\\Lib\\email\\policy.py',
+ 'PYMODULE'),
+ ('email.quoprimime',
+ 'D:\\Program Files\\Python312\\Lib\\email\\quoprimime.py',
+ 'PYMODULE'),
+ ('email.utils',
+ 'D:\\Program Files\\Python312\\Lib\\email\\utils.py',
+ 'PYMODULE'),
+ ('fnmatch', 'D:\\Program Files\\Python312\\Lib\\fnmatch.py', 'PYMODULE'),
+ ('fractions', 'D:\\Program Files\\Python312\\Lib\\fractions.py', 'PYMODULE'),
+ ('ftplib', 'D:\\Program Files\\Python312\\Lib\\ftplib.py', 'PYMODULE'),
+ ('game_functions', 'D:\\pythonProject\\test1\\game_functions.py', 'PYMODULE'),
+ ('game_stats', 'D:\\pythonProject\\test1\\game_stats.py', 'PYMODULE'),
+ ('getopt', 'D:\\Program Files\\Python312\\Lib\\getopt.py', 'PYMODULE'),
+ ('getpass', 'D:\\Program Files\\Python312\\Lib\\getpass.py', 'PYMODULE'),
+ ('gettext', 'D:\\Program Files\\Python312\\Lib\\gettext.py', 'PYMODULE'),
+ ('gzip', 'D:\\Program Files\\Python312\\Lib\\gzip.py', 'PYMODULE'),
+ ('hashlib', 'D:\\Program Files\\Python312\\Lib\\hashlib.py', 'PYMODULE'),
+ ('http', 'D:\\Program Files\\Python312\\Lib\\http\\__init__.py', 'PYMODULE'),
+ ('http.client',
+ 'D:\\Program Files\\Python312\\Lib\\http\\client.py',
+ 'PYMODULE'),
+ ('http.cookiejar',
+ 'D:\\Program Files\\Python312\\Lib\\http\\cookiejar.py',
+ 'PYMODULE'),
+ ('importlib',
+ 'D:\\Program Files\\Python312\\Lib\\importlib\\__init__.py',
+ 'PYMODULE'),
+ ('importlib._abc',
+ 'D:\\Program Files\\Python312\\Lib\\importlib\\_abc.py',
+ 'PYMODULE'),
+ ('importlib._bootstrap',
+ 'D:\\Program Files\\Python312\\Lib\\importlib\\_bootstrap.py',
+ 'PYMODULE'),
+ ('importlib._bootstrap_external',
+ 'D:\\Program Files\\Python312\\Lib\\importlib\\_bootstrap_external.py',
+ 'PYMODULE'),
+ ('importlib.abc',
+ 'D:\\Program Files\\Python312\\Lib\\importlib\\abc.py',
+ 'PYMODULE'),
+ ('importlib.machinery',
+ 'D:\\Program Files\\Python312\\Lib\\importlib\\machinery.py',
+ 'PYMODULE'),
+ ('importlib.metadata',
+ 'D:\\Program Files\\Python312\\Lib\\importlib\\metadata\\__init__.py',
+ 'PYMODULE'),
+ ('importlib.metadata._adapters',
+ 'D:\\Program Files\\Python312\\Lib\\importlib\\metadata\\_adapters.py',
+ 'PYMODULE'),
+ ('importlib.metadata._collections',
+ 'D:\\Program Files\\Python312\\Lib\\importlib\\metadata\\_collections.py',
+ 'PYMODULE'),
+ ('importlib.metadata._functools',
+ 'D:\\Program Files\\Python312\\Lib\\importlib\\metadata\\_functools.py',
+ 'PYMODULE'),
+ ('importlib.metadata._itertools',
+ 'D:\\Program Files\\Python312\\Lib\\importlib\\metadata\\_itertools.py',
+ 'PYMODULE'),
+ ('importlib.metadata._meta',
+ 'D:\\Program Files\\Python312\\Lib\\importlib\\metadata\\_meta.py',
+ 'PYMODULE'),
+ ('importlib.metadata._text',
+ 'D:\\Program Files\\Python312\\Lib\\importlib\\metadata\\_text.py',
+ 'PYMODULE'),
+ ('importlib.readers',
+ 'D:\\Program Files\\Python312\\Lib\\importlib\\readers.py',
+ 'PYMODULE'),
+ ('importlib.resources',
+ 'D:\\Program Files\\Python312\\Lib\\importlib\\resources\\__init__.py',
+ 'PYMODULE'),
+ ('importlib.resources._adapters',
+ 'D:\\Program Files\\Python312\\Lib\\importlib\\resources\\_adapters.py',
+ 'PYMODULE'),
+ ('importlib.resources._common',
+ 'D:\\Program Files\\Python312\\Lib\\importlib\\resources\\_common.py',
+ 'PYMODULE'),
+ ('importlib.resources._itertools',
+ 'D:\\Program Files\\Python312\\Lib\\importlib\\resources\\_itertools.py',
+ 'PYMODULE'),
+ ('importlib.resources._legacy',
+ 'D:\\Program Files\\Python312\\Lib\\importlib\\resources\\_legacy.py',
+ 'PYMODULE'),
+ ('importlib.resources.abc',
+ 'D:\\Program Files\\Python312\\Lib\\importlib\\resources\\abc.py',
+ 'PYMODULE'),
+ ('importlib.resources.readers',
+ 'D:\\Program Files\\Python312\\Lib\\importlib\\resources\\readers.py',
+ 'PYMODULE'),
+ ('importlib.util',
+ 'D:\\Program Files\\Python312\\Lib\\importlib\\util.py',
+ 'PYMODULE'),
+ ('inspect', 'D:\\Program Files\\Python312\\Lib\\inspect.py', 'PYMODULE'),
+ ('ipaddress', 'D:\\Program Files\\Python312\\Lib\\ipaddress.py', 'PYMODULE'),
+ ('logging',
+ 'D:\\Program Files\\Python312\\Lib\\logging\\__init__.py',
+ 'PYMODULE'),
+ ('lzma', 'D:\\Program Files\\Python312\\Lib\\lzma.py', 'PYMODULE'),
+ ('mimetypes', 'D:\\Program Files\\Python312\\Lib\\mimetypes.py', 'PYMODULE'),
+ ('netrc', 'D:\\Program Files\\Python312\\Lib\\netrc.py', 'PYMODULE'),
+ ('nturl2path',
+ 'D:\\Program Files\\Python312\\Lib\\nturl2path.py',
+ 'PYMODULE'),
+ ('numbers', 'D:\\Program Files\\Python312\\Lib\\numbers.py', 'PYMODULE'),
+ ('opcode', 'D:\\Program Files\\Python312\\Lib\\opcode.py', 'PYMODULE'),
+ ('packaging',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\packaging\\__init__.py',
+ 'PYMODULE'),
+ ('packaging._elffile',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\packaging\\_elffile.py',
+ 'PYMODULE'),
+ ('packaging._manylinux',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\packaging\\_manylinux.py',
+ 'PYMODULE'),
+ ('packaging._musllinux',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\packaging\\_musllinux.py',
+ 'PYMODULE'),
+ ('packaging._parser',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\packaging\\_parser.py',
+ 'PYMODULE'),
+ ('packaging._structures',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\packaging\\_structures.py',
+ 'PYMODULE'),
+ ('packaging._tokenizer',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\packaging\\_tokenizer.py',
+ 'PYMODULE'),
+ ('packaging.markers',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\packaging\\markers.py',
+ 'PYMODULE'),
+ ('packaging.metadata',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\packaging\\metadata.py',
+ 'PYMODULE'),
+ ('packaging.requirements',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\packaging\\requirements.py',
+ 'PYMODULE'),
+ ('packaging.specifiers',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\packaging\\specifiers.py',
+ 'PYMODULE'),
+ ('packaging.tags',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\packaging\\tags.py',
+ 'PYMODULE'),
+ ('packaging.utils',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\packaging\\utils.py',
+ 'PYMODULE'),
+ ('packaging.version',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\packaging\\version.py',
+ 'PYMODULE'),
+ ('pathlib', 'D:\\Program Files\\Python312\\Lib\\pathlib.py', 'PYMODULE'),
+ ('pickle', 'D:\\Program Files\\Python312\\Lib\\pickle.py', 'PYMODULE'),
+ ('pkg_resources',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\__init__.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\__init__.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.backports',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\backports\\__init__.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.backports.tarfile',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\backports\\tarfile.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.importlib_resources',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\importlib_resources\\__init__.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.importlib_resources._adapters',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\importlib_resources\\_adapters.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.importlib_resources._common',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\importlib_resources\\_common.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.importlib_resources._compat',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\importlib_resources\\_compat.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.importlib_resources._itertools',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\importlib_resources\\_itertools.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.importlib_resources._legacy',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\importlib_resources\\_legacy.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.importlib_resources.abc',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\importlib_resources\\abc.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.importlib_resources.readers',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\importlib_resources\\readers.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.importlib_resources.simple',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\importlib_resources\\simple.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.jaraco',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\jaraco\\__init__.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.jaraco.context',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\jaraco\\context.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.jaraco.functools',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\jaraco\\functools\\__init__.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.jaraco.text',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\jaraco\\text\\__init__.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.more_itertools',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\more_itertools\\__init__.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.more_itertools.more',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\more_itertools\\more.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.more_itertools.recipes',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\more_itertools\\recipes.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.packaging',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\packaging\\__init__.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.packaging._elffile',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\packaging\\_elffile.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.packaging._manylinux',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\packaging\\_manylinux.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.packaging._musllinux',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\packaging\\_musllinux.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.packaging._parser',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\packaging\\_parser.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.packaging._structures',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\packaging\\_structures.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.packaging._tokenizer',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\packaging\\_tokenizer.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.packaging.markers',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\packaging\\markers.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.packaging.metadata',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\packaging\\metadata.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.packaging.requirements',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\packaging\\requirements.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.packaging.specifiers',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\packaging\\specifiers.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.packaging.tags',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\packaging\\tags.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.packaging.utils',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\packaging\\utils.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.packaging.version',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\packaging\\version.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.platformdirs',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\platformdirs\\__init__.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.platformdirs.__main__',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\platformdirs\\__main__.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.platformdirs.android',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\platformdirs\\android.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.platformdirs.api',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\platformdirs\\api.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.platformdirs.macos',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\platformdirs\\macos.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.platformdirs.unix',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\platformdirs\\unix.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.platformdirs.version',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\platformdirs\\version.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.platformdirs.windows',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\platformdirs\\windows.py',
+ 'PYMODULE'),
+ ('pkg_resources._vendor.zipp',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\_vendor\\zipp.py',
+ 'PYMODULE'),
+ ('pkg_resources.extern',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pkg_resources\\extern\\__init__.py',
+ 'PYMODULE'),
+ ('pkgutil', 'D:\\Program Files\\Python312\\Lib\\pkgutil.py', 'PYMODULE'),
+ ('platform', 'D:\\Program Files\\Python312\\Lib\\platform.py', 'PYMODULE'),
+ ('plistlib', 'D:\\Program Files\\Python312\\Lib\\plistlib.py', 'PYMODULE'),
+ ('pprint', 'D:\\Program Files\\Python312\\Lib\\pprint.py', 'PYMODULE'),
+ ('py_compile',
+ 'D:\\Program Files\\Python312\\Lib\\py_compile.py',
+ 'PYMODULE'),
+ ('pygame',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\__init__.py',
+ 'PYMODULE'),
+ ('pygame.colordict',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\colordict.py',
+ 'PYMODULE'),
+ ('pygame.cursors',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\cursors.py',
+ 'PYMODULE'),
+ ('pygame.fastevent',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\fastevent.py',
+ 'PYMODULE'),
+ ('pygame.ftfont',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\ftfont.py',
+ 'PYMODULE'),
+ ('pygame.macosx',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\macosx.py',
+ 'PYMODULE'),
+ ('pygame.pkgdata',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\pkgdata.py',
+ 'PYMODULE'),
+ ('pygame.sndarray',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\sndarray.py',
+ 'PYMODULE'),
+ ('pygame.sprite',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\sprite.py',
+ 'PYMODULE'),
+ ('pygame.surfarray',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\surfarray.py',
+ 'PYMODULE'),
+ ('pygame.sysfont',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\sysfont.py',
+ 'PYMODULE'),
+ ('pygame.threads',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\threads\\__init__.py',
+ 'PYMODULE'),
+ ('pygame.version',
+ 'D:\\pythonProject\\test1\\.venv\\Lib\\site-packages\\pygame\\version.py',
+ 'PYMODULE'),
+ ('queue', 'D:\\Program Files\\Python312\\Lib\\queue.py', 'PYMODULE'),
+ ('quopri', 'D:\\Program Files\\Python312\\Lib\\quopri.py', 'PYMODULE'),
+ ('random', 'D:\\Program Files\\Python312\\Lib\\random.py', 'PYMODULE'),
+ ('scoreboard', 'D:\\pythonProject\\test1\\scoreboard.py', 'PYMODULE'),
+ ('selectors', 'D:\\Program Files\\Python312\\Lib\\selectors.py', 'PYMODULE'),
+ ('settings', 'D:\\pythonProject\\test1\\settings.py', 'PYMODULE'),
+ ('ship', 'D:\\pythonProject\\test1\\ship.py', 'PYMODULE'),
+ ('shutil', 'D:\\Program Files\\Python312\\Lib\\shutil.py', 'PYMODULE'),
+ ('signal', 'D:\\Program Files\\Python312\\Lib\\signal.py', 'PYMODULE'),
+ ('socket', 'D:\\Program Files\\Python312\\Lib\\socket.py', 'PYMODULE'),
+ ('ssl', 'D:\\Program Files\\Python312\\Lib\\ssl.py', 'PYMODULE'),
+ ('statistics',
+ 'D:\\Program Files\\Python312\\Lib\\statistics.py',
+ 'PYMODULE'),
+ ('string', 'D:\\Program Files\\Python312\\Lib\\string.py', 'PYMODULE'),
+ ('stringprep',
+ 'D:\\Program Files\\Python312\\Lib\\stringprep.py',
+ 'PYMODULE'),
+ ('subprocess',
+ 'D:\\Program Files\\Python312\\Lib\\subprocess.py',
+ 'PYMODULE'),
+ ('sysconfig', 'D:\\Program Files\\Python312\\Lib\\sysconfig.py', 'PYMODULE'),
+ ('tarfile', 'D:\\Program Files\\Python312\\Lib\\tarfile.py', 'PYMODULE'),
+ ('tempfile', 'D:\\Program Files\\Python312\\Lib\\tempfile.py', 'PYMODULE'),
+ ('textwrap', 'D:\\Program Files\\Python312\\Lib\\textwrap.py', 'PYMODULE'),
+ ('threading', 'D:\\Program Files\\Python312\\Lib\\threading.py', 'PYMODULE'),
+ ('token', 'D:\\Program Files\\Python312\\Lib\\token.py', 'PYMODULE'),
+ ('tokenize', 'D:\\Program Files\\Python312\\Lib\\tokenize.py', 'PYMODULE'),
+ ('tracemalloc',
+ 'D:\\Program Files\\Python312\\Lib\\tracemalloc.py',
+ 'PYMODULE'),
+ ('typing', 'D:\\Program Files\\Python312\\Lib\\typing.py', 'PYMODULE'),
+ ('urllib',
+ 'D:\\Program Files\\Python312\\Lib\\urllib\\__init__.py',
+ 'PYMODULE'),
+ ('urllib.error',
+ 'D:\\Program Files\\Python312\\Lib\\urllib\\error.py',
+ 'PYMODULE'),
+ ('urllib.parse',
+ 'D:\\Program Files\\Python312\\Lib\\urllib\\parse.py',
+ 'PYMODULE'),
+ ('urllib.request',
+ 'D:\\Program Files\\Python312\\Lib\\urllib\\request.py',
+ 'PYMODULE'),
+ ('urllib.response',
+ 'D:\\Program Files\\Python312\\Lib\\urllib\\response.py',
+ 'PYMODULE'),
+ ('xml', 'D:\\Program Files\\Python312\\Lib\\xml\\__init__.py', 'PYMODULE'),
+ ('xml.parsers',
+ 'D:\\Program Files\\Python312\\Lib\\xml\\parsers\\__init__.py',
+ 'PYMODULE'),
+ ('xml.parsers.expat',
+ 'D:\\Program Files\\Python312\\Lib\\xml\\parsers\\expat.py',
+ 'PYMODULE'),
+ ('xml.sax',
+ 'D:\\Program Files\\Python312\\Lib\\xml\\sax\\__init__.py',
+ 'PYMODULE'),
+ ('xml.sax._exceptions',
+ 'D:\\Program Files\\Python312\\Lib\\xml\\sax\\_exceptions.py',
+ 'PYMODULE'),
+ ('xml.sax.expatreader',
+ 'D:\\Program Files\\Python312\\Lib\\xml\\sax\\expatreader.py',
+ 'PYMODULE'),
+ ('xml.sax.handler',
+ 'D:\\Program Files\\Python312\\Lib\\xml\\sax\\handler.py',
+ 'PYMODULE'),
+ ('xml.sax.saxutils',
+ 'D:\\Program Files\\Python312\\Lib\\xml\\sax\\saxutils.py',
+ 'PYMODULE'),
+ ('xml.sax.xmlreader',
+ 'D:\\Program Files\\Python312\\Lib\\xml\\sax\\xmlreader.py',
+ 'PYMODULE'),
+ ('zipfile',
+ 'D:\\Program Files\\Python312\\Lib\\zipfile\\__init__.py',
+ 'PYMODULE'),
+ ('zipfile._path',
+ 'D:\\Program Files\\Python312\\Lib\\zipfile\\_path\\__init__.py',
+ 'PYMODULE'),
+ ('zipfile._path.glob',
+ 'D:\\Program Files\\Python312\\Lib\\zipfile\\_path\\glob.py',
+ 'PYMODULE'),
+ ('zipimport', 'D:\\Program Files\\Python312\\Lib\\zipimport.py', 'PYMODULE')])
diff --git a/build/alien_invation/alien_invation.pkg b/build/alien_invation/alien_invation.pkg
new file mode 100644
index 0000000..2cfbc6b
Binary files /dev/null and b/build/alien_invation/alien_invation.pkg differ
diff --git a/build/alien_invation/base_library.zip b/build/alien_invation/base_library.zip
new file mode 100644
index 0000000..c44224c
Binary files /dev/null and b/build/alien_invation/base_library.zip differ
diff --git a/build/alien_invation/warn-alien_invation.txt b/build/alien_invation/warn-alien_invation.txt
new file mode 100644
index 0000000..b8ce28e
--- /dev/null
+++ b/build/alien_invation/warn-alien_invation.txt
@@ -0,0 +1,48 @@
+
+This file lists modules PyInstaller was not able to find. This does not
+necessarily mean this module is required for running your program. Python and
+Python 3rd-party packages include a lot of conditional or optional modules. For
+example the module 'ntpath' only exists on Windows, whereas the module
+'posixpath' only exists on Posix systems.
+
+Types if import:
+* top-level: imported at the top-level - look at these first
+* conditional: imported within an if-statement
+* delayed: imported within a function
+* optional: imported within a try-except-statement
+
+IMPORTANT: Do NOT post this list to the issue-tracker. Use it as a basis for
+ tracking down the missing module yourself. Thanks!
+
+missing module named pyimod02_importers - imported by D:\pythonProject\test1\.venv\Lib\site-packages\PyInstaller\hooks\rthooks\pyi_rth_pkgres.py (delayed), D:\pythonProject\test1\.venv\Lib\site-packages\PyInstaller\hooks\rthooks\pyi_rth_pkgutil.py (delayed)
+missing module named pwd - imported by posixpath (delayed, conditional, optional), shutil (delayed, optional), tarfile (optional), pathlib (delayed, optional), subprocess (delayed, conditional, optional), pkg_resources._vendor.backports.tarfile (optional), netrc (delayed, conditional), getpass (delayed)
+missing module named grp - imported by shutil (delayed, optional), tarfile (optional), pathlib (delayed, optional), subprocess (delayed, conditional, optional), pkg_resources._vendor.backports.tarfile (optional)
+missing module named posix - imported by os (conditional, optional), shutil (conditional), importlib._bootstrap_external (conditional), posixpath (optional)
+missing module named resource - imported by posix (top-level)
+excluded module named _frozen_importlib - imported by importlib (optional), importlib.abc (optional), zipimport (top-level)
+missing module named _frozen_importlib_external - imported by importlib._bootstrap (delayed), importlib (optional), importlib.abc (optional), zipimport (top-level)
+missing module named _posixsubprocess - imported by subprocess (conditional)
+missing module named fcntl - imported by subprocess (optional)
+missing module named typing_extensions - imported by pkg_resources._vendor.packaging.metadata (conditional, optional), packaging.metadata (conditional, optional)
+missing module named _manylinux - imported by pkg_resources._vendor.packaging._manylinux (delayed, optional), packaging._manylinux (delayed, optional)
+missing module named jnius - imported by pkg_resources._vendor.platformdirs.android (delayed, optional)
+missing module named platformdirs - imported by pkg_resources._vendor.platformdirs.__main__ (top-level)
+missing module named pkg_resources._vendor.typing_extensions - imported by pkg_resources._vendor.platformdirs (conditional)
+missing module named 'pkg_resources.extern.importlib_resources' - imported by pkg_resources._vendor.jaraco.text (optional)
+missing module named 'pkg_resources.extern.more_itertools' - imported by pkg_resources._vendor.jaraco.functools (top-level)
+missing module named 'pkg_resources.extern.backports' - imported by pkg_resources._vendor.jaraco.context (conditional)
+missing module named _scproxy - imported by urllib.request (conditional)
+missing module named termios - imported by getpass (optional)
+missing module named 'pkg_resources.extern.platformdirs' - imported by pkg_resources (top-level)
+missing module named 'pkg_resources.extern.packaging' - imported by pkg_resources (top-level)
+missing module named 'pkg_resources.extern.jaraco' - imported by pkg_resources (top-level), pkg_resources._vendor.jaraco.text (top-level)
+missing module named vms_lib - imported by platform (delayed, optional)
+missing module named 'java.lang' - imported by platform (delayed, optional)
+missing module named java - imported by platform (delayed)
+missing module named _winreg - imported by platform (delayed, optional)
+missing module named OpenGL - imported by pygame (delayed)
+missing module named numpy - imported by pygame.surfarray (top-level), pygame.sndarray (top-level), pygame (delayed)
+missing module named pygame.register_quit - imported by pygame (top-level), pygame.fastevent (top-level)
+missing module named pygame.error - imported by pygame (top-level), pygame.fastevent (top-level)
+missing module named 'pygame.overlay' - imported by pygame (optional)
+missing module named 'pygame.cdrom' - imported by pygame (conditional, optional)
diff --git a/build/alien_invation/xref-alien_invation.html b/build/alien_invation/xref-alien_invation.html
new file mode 100644
index 0000000..b1bca3f
--- /dev/null
+++ b/build/alien_invation/xref-alien_invation.html
@@ -0,0 +1,11195 @@
+
+
+
+
+ modulegraph cross reference for alien_invation.py, pyi_rth_inspect.py, pyi_rth_pkgres.py, pyi_rth_pkgutil.py
+
+
+
+ modulegraph cross reference for alien_invation.py, pyi_rth_inspect.py, pyi_rth_pkgres.py, pyi_rth_pkgutil.py
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
_abc (builtin module)
+
+
+
+
+
+
+
+
_ast (builtin module)
+
+
+
+
+
+
_bisect (builtin module)
+
+
+
+
+
+
_blake2 (builtin module)
+
+
+
+
+
+
_bz2 D:\Program Files\Python312\DLLs\_bz2.pyd
+
+
+
+
+
+
_codecs (builtin module)
+
+
+
+
+
+
_codecs_cn (builtin module)
+
+
+
+
+
+
_codecs_hk (builtin module)
+
+
+
+
+
+
_codecs_iso2022 (builtin module)
+
+
+
+
+
+
_codecs_jp (builtin module)
+
+
+
+
+
+
_codecs_kr (builtin module)
+
+
+
+
+
+
_codecs_tw (builtin module)
+
+
+
+
+
+
_collections (builtin module)
+
+
+
+
+
+
+
+
+
+
+
+
_contextvars (builtin module)
+
+
+
+
+
+
_csv (builtin module)
+
+
+
+
+
+
_ctypes D:\Program Files\Python312\DLLs\_ctypes.pyd
+
+
+
+
+
+
_datetime (builtin module)
+
+
+
+
+
+
+
_decimal D:\Program Files\Python312\DLLs\_decimal.pyd
+
+
+
+
+
+
+
+
+
+
_functools (builtin module)
+
+
+
+
+
+
_hashlib D:\Program Files\Python312\DLLs\_hashlib.pyd
+
+
+
+
+
+
_heapq (builtin module)
+imported by:
+
heapq
+
+
+
+
+
+
+
+
_imp (builtin module)
+
+
+
+
+
+
_io (builtin module)
+
+
+
+
+
+
_locale (builtin module)
+
+
+
+
+
+
_lzma D:\Program Files\Python312\DLLs\_lzma.pyd
+
+
+
+
+
+
+
+
_md5 (builtin module)
+
+
+
+
+
+
_multibytecodec (builtin module)
+
+
+
+
+
+
_opcode (builtin module)
+
+
+
+
+
+
_operator (builtin module)
+
+
+
+
+
+
_pickle (builtin module)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
_queue D:\Program Files\Python312\DLLs\_queue.pyd
+imported by:
+
queue
+
+
+
+
+
+
+
+
_random (builtin module)
+
+
+
+
+
+
+
+
_sha1 (builtin module)
+
+
+
+
+
+
_sha2 (builtin module)
+
+
+
+
+
+
_sha3 (builtin module)
+
+
+
+
+
+
_signal (builtin module)
+
+
+
+
+
+
_socket D:\Program Files\Python312\DLLs\_socket.pyd
+
+
+
+
+
+
_sre (builtin module)
+
+
+
+
+
+
+
_ssl D:\Program Files\Python312\DLLs\_ssl.pyd
+
+
+
+
+
+
+
_stat (builtin module)
+
+
+
+
+
+
_statistics (builtin module)
+
+
+
+
+
+
_string (builtin module)
+
+
+
+
+
+
+
+
_struct (builtin module)
+
+
+
+
+
+
_thread (builtin module)
+
+
+
+
+
+
+
+
_tokenize (builtin module)
+
+
+
+
+
+
_tracemalloc (builtin module)
+
+
+
+
+
+
_typing (builtin module)
+
+
+
+
+
+
_warnings (builtin module)
+
+
+
+
+
+
_weakref (builtin module)
+
+
+
+
+
+
+
+
_winapi (builtin module)
+
+
+
+
+
+
+
+
_wmi D:\Program Files\Python312\DLLs\_wmi.pyd
+
+
+
+
+
+
abc
+
SourceModule
+
+
+
+
+
+
+
alien
+
SourceModule
+
+
+
+
+
+
+
+
+
array (builtin module)
+
+
+
+
+
+
ast
+
SourceModule
+
+
+
+
+
+
+
atexit (builtin module)
+
+
+
+
+
+
base64
+
SourceModule
+
+
+
+
+
+
+
binascii (builtin module)
+
+
+
+
+
+
bisect
+
SourceModule
+
+
+
+
+
+
+
builtins (builtin module)
+
+
+
+
+
+
bullet
+
SourceModule
+
+
+
+
+
+
+
button
+
SourceModule
+
+
+
+
+
+
+
bz2
+
SourceModule
+
+
+
+
+
+
+
+
+
codecs
+
SourceModule
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
copy
+
SourceModule
+
+
+
+
+
+
+
+
+
csv
+
SourceModule
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
dis
+
SourceModule
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
enum
+
SourceModule
+
+
+
+
+
+
+
errno (builtin module)
+
+
+
+
+
+
fcntl
+
MissingModule
+
+
+
+
+
+
+
+
+
+
ftplib
+
SourceModule
+
+
+
+
+
+
+
+
+
+
+
+
+
gc (builtin module)
+
+
+
+
+
+
+
+
+
getopt
+
SourceModule
+
+
+
+
+
+
+
+
+
+
+
grp
+
MissingModule
+
+
+
+
+
+
gzip
+
SourceModule
+
+
+
+
+
+
+
+
+
heapq
+
SourceModule
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
io
+
SourceModule
+
+
+
+
+
+
+
+
+
itertools (builtin module)
+
+
+
+
+
+
java
+
MissingModule
+
+
+
+
+
+
jnius
+
MissingModule
+
+
+
+
+
+
+
+
+
+
locale
+
SourceModule
+
+
+
+
+
+
+
+
+
lzma
+
SourceModule
+
+
+
+
+
+
+
marshal (builtin module)
+
+
+
+
+
+
math (builtin module)
+
+
+
+
+
+
+
+
msvcrt (builtin module)
+
+
+
+
+
+
netrc
+
SourceModule
+
+
+
+
+
+
+
nt (builtin module)
+
+
+
+
+
+
ntpath
+
SourceModule
+
+
+
+
+
+
+
+
+
+
+
+
+
numpy
+
MissingModule
+
+
+
+
+
+
opcode
+
SourceModule
+
+
+
+
+
+
+
+
+
os
+
SourceModule
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
pickle
+
SourceModule
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
posix
+
MissingModule
+
+
+
+
+
+
+
+
+
pprint
+
SourceModule
+
+
+
+
+
+
+
pwd
+
MissingModule
+
+
+
+
+
+
+
+
pyexpat D:\Program Files\Python312\DLLs\pyexpat.pyd
+
+
+
+
+
+
+
+
pygame._freetype D:\pythonProject\test1\.venv\Lib\site-packages\pygame\_freetype.cp312-win_amd64.pyd
+
+
+
+
+
+
+
pygame.base D:\pythonProject\test1\.venv\Lib\site-packages\pygame\base.cp312-win_amd64.pyd
+
+
+
+
+
+
+
pygame.bufferproxy D:\pythonProject\test1\.venv\Lib\site-packages\pygame\bufferproxy.cp312-win_amd64.pyd
+
+
+
+
+
+
+
pygame.color D:\pythonProject\test1\.venv\Lib\site-packages\pygame\color.cp312-win_amd64.pyd
+
+
+
+
+
+
+
+
+
pygame.constants D:\pythonProject\test1\.venv\Lib\site-packages\pygame\constants.cp312-win_amd64.pyd
+
+
+
+
+
+
+
+
+
pygame.display D:\pythonProject\test1\.venv\Lib\site-packages\pygame\display.cp312-win_amd64.pyd
+
+
+
+
+
+
+
pygame.draw D:\pythonProject\test1\.venv\Lib\site-packages\pygame\draw.cp312-win_amd64.pyd
+
+
+
+
+
+
+
+
+
pygame.event D:\pythonProject\test1\.venv\Lib\site-packages\pygame\event.cp312-win_amd64.pyd
+
+
+
+
+
+
+
+
+
pygame.font D:\pythonProject\test1\.venv\Lib\site-packages\pygame\font.cp312-win_amd64.pyd
+
+
+
+
+
+
+
+
+
pygame.image D:\pythonProject\test1\.venv\Lib\site-packages\pygame\image.cp312-win_amd64.pyd
+
+
+
+
+
+
+
pygame.imageext D:\pythonProject\test1\.venv\Lib\site-packages\pygame\imageext.cp312-win_amd64.pyd
+
+
+
+
+
+
+
pygame.joystick D:\pythonProject\test1\.venv\Lib\site-packages\pygame\joystick.cp312-win_amd64.pyd
+
+
+
+
+
+
+
pygame.key D:\pythonProject\test1\.venv\Lib\site-packages\pygame\key.cp312-win_amd64.pyd
+
+
+
+
+
+
+
+
+
pygame.mask D:\pythonProject\test1\.venv\Lib\site-packages\pygame\mask.cp312-win_amd64.pyd
+
+
+
+
+
+
+
pygame.math D:\pythonProject\test1\.venv\Lib\site-packages\pygame\math.cp312-win_amd64.pyd
+
+
+
+
+
+
+
pygame.mixer D:\pythonProject\test1\.venv\Lib\site-packages\pygame\mixer.cp312-win_amd64.pyd
+
+
+
+
+
+
+
pygame.mixer_music D:\pythonProject\test1\.venv\Lib\site-packages\pygame\mixer_music.cp312-win_amd64.pyd
+
+
+
+
+
+
+
pygame.mouse D:\pythonProject\test1\.venv\Lib\site-packages\pygame\mouse.cp312-win_amd64.pyd
+
+
+
+
+
+
+
pygame.pixelarray D:\pythonProject\test1\.venv\Lib\site-packages\pygame\pixelarray.cp312-win_amd64.pyd
+
+
+
+
+
+
+
pygame.pixelcopy D:\pythonProject\test1\.venv\Lib\site-packages\pygame\pixelcopy.cp312-win_amd64.pyd
+
+
+
+
+
+
+
+
+
pygame.rect D:\pythonProject\test1\.venv\Lib\site-packages\pygame\rect.cp312-win_amd64.pyd
+
+
+
+
+
+
+
+
+
pygame.rwobject D:\pythonProject\test1\.venv\Lib\site-packages\pygame\rwobject.cp312-win_amd64.pyd
+
+
+
+
+
+
+
pygame.scrap D:\pythonProject\test1\.venv\Lib\site-packages\pygame\scrap.cp312-win_amd64.pyd
+
+
+
+
+
+
+
+
+
+
+
pygame.surface D:\pythonProject\test1\.venv\Lib\site-packages\pygame\surface.cp312-win_amd64.pyd
+
+
+
+
+
+
+
+
+
pygame.surflock D:\pythonProject\test1\.venv\Lib\site-packages\pygame\surflock.cp312-win_amd64.pyd
+
+
+
+
+
+
+
+
+
+
+
pygame.time D:\pythonProject\test1\.venv\Lib\site-packages\pygame\time.cp312-win_amd64.pyd
+
+
+
+
+
+
+
pygame.transform D:\pythonProject\test1\.venv\Lib\site-packages\pygame\transform.cp312-win_amd64.pyd
+
+
+
+
+
+
+
+
+
+
+
queue
+
SourceModule
+
+
+
+
+
+
+
quopri
+
SourceModule
+
+
+
+
+
+
+
random
+
SourceModule
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
select D:\Program Files\Python312\DLLs\select.pyd
+
+
+
+
+
+
+
+
+
+
ship
+
SourceModule
+
+
+
+
+
+
+
shutil
+
SourceModule
+
+
+
+
+
+
+
signal
+
SourceModule
+
+
+
+
+
+
+
socket
+
SourceModule
+
+
+
+
+
+
+
+
+
+
+
+
+
ssl
+
SourceModule
+
+
+
+
+
+
+
stat
+
SourceModule
+
+
+
+
+
+
+
+
+
string
+
SourceModule
+
+
+
+
+
+
+
+
+
struct
+
SourceModule
+
+
+
+
+
+
+
+
+
sys (builtin module)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
time (builtin module)
+
+
+
+
+
+
+
token
+
SourceModule
+
+
+
+
+
+
+
+
+
+
+
+
types
+
SourceModule
+
+
+
+
+
+
+
typing
+
SourceModule
+
+
+
+
+
+
+
+
+
unicodedata D:\Program Files\Python312\DLLs\unicodedata.pyd
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
winreg (builtin module)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
zlib (builtin module)
+
+
+
+
+
diff --git a/bullet.py b/bullet.py
new file mode 100644
index 0000000..e35affe
--- /dev/null
+++ b/bullet.py
@@ -0,0 +1,39 @@
+# 开发日期: 2024/4/26
+import pygame
+from pygame.sprite import Sprite
+class Bullet(Sprite):
+ """一个对飞船发射的子弹进行管理的类"""
+ def __init__(self, ai_settings, screen, ship):
+ """在飞船所处的位置创建一个子弹对象"""
+ super(Bullet, self).__init__()
+ self.screen = screen
+ # 加载子弹图像,并获取其外接矩形
+ # self.image = pygame.image.load('images/bullet.png')
+ # self.rect = self.image.get_rect()
+ # self.rect.centerx = ship.rect.centerx
+ # self.rect.top = ship.rect.top
+ #
+ # # 存储用小数表示的子弹位置
+ # self.y = float(self.rect.y)
+ #
+ # self.speed_factor = ai_settings.bullet_speed_factor
+ # 加载子弹图像,并获取其外接矩形
+ self.image = pygame.image.load('images/bullet.png')
+ self.sound = pygame.mixer.Sound('bgm/bullet.wav')
+ self.rect = self.image.get_rect()
+ self.rect.centerx = ship.rect.centerx
+ self.rect.top = ship.rect.top
+ # 存储用小数表示的子弹位置
+ self.y = float(self.rect.y)
+ self.speed_factor = ai_settings.bullet_speed_factor
+
+ def update(self):
+ """向上移动子弹"""
+ # 更新表示子弹位置的小数值
+ self.y -= self.speed_factor
+ # 更新表示子弹的rect的位置
+ self.rect.y = self.y
+
+ def draw_bullet(self):
+ """在屏幕上绘制子弹"""
+ self.screen.blit(self.image, self.rect)
diff --git a/button.py b/button.py
new file mode 100644
index 0000000..dee7b46
--- /dev/null
+++ b/button.py
@@ -0,0 +1,34 @@
+import pygame.font
+import pygame
+
+
+class Button():
+ def __init__(self, ai_settings, screen, msg):
+ """初始化按钮的属性"""
+ pygame.init()
+ self.screen = screen
+ self.screen_rect = screen.get_rect()
+ # 设置按钮的尺寸和其它属性
+ self.width = 200
+ self.height = 50
+ self.button_color = (0, 255, 50)
+ self.text_color = (255, 255, 255)
+ # print(pygame.font.get_fonts())
+ # self.font = pygame.font.SysFont("arial", 48)
+ self.font = pygame.font.SysFont(None, 48)
+ # 创建按钮的rect对象,并使其居中
+ self.rect = pygame.Rect(0, 0, self.width, self.height)
+ self.rect.center = self.screen_rect.center
+ # 按钮的标签只需创建一次
+ self.prep_msg(msg)
+
+ def prep_msg(self, msg):
+ """将msg渲染成图像, 并将其在按钮上居中"""
+ self.msg_image = self.font.render(msg, True, self.text_color, self.button_color)
+ self.msg_image_rect = self.msg_image.get_rect()
+ self.msg_image_rect.center = self.rect.center
+
+ def draw_button(self):
+ # 绘制一个用颜色填充的按钮,再绘制文本
+ self.screen.fill(self.button_color, self.rect)
+ self.screen.blit(self.msg_image, self.msg_image_rect)
\ No newline at end of file
diff --git a/explosion.py b/explosion.py
new file mode 100644
index 0000000..def0931
--- /dev/null
+++ b/explosion.py
@@ -0,0 +1,24 @@
+import pygame
+from pygame.examples.video import x, y
+
+
+class Explosion:
+ def __init__(self, ai_setting, screen):
+ self.screen = screen
+ self.image = pygame.image.load('images/explosion.png')
+ self.rect = self.image.get_rect()
+ self.visible = False
+ self.stop_time = ai_setting.explosion_time
+ self.stop = ai_setting.explosion_time
+ def create(self):
+ self.visible = True
+ self.stop = self.stop_time
+ self.rect.centerx = x
+ self.rect.centery = y
+ def update(self):
+ self.stop -= 1
+ if self.stop == 0:
+ self.visible = False
+ def display(self):
+ if self.visible:
+ self.screen.blit(self.image, self.rect)
\ No newline at end of file
diff --git a/game_functions.py b/game_functions.py
new file mode 100644
index 0000000..87f76db
--- /dev/null
+++ b/game_functions.py
@@ -0,0 +1,240 @@
+# 开发日期: 2024/4/26
+import sys
+
+import start_ui
+from bullet import Bullet
+from alien import Alien
+from time import sleep, time
+import pygame
+import settings
+
+
+def check_keydown_events(event, ai_settings, screen, ship, bullets):
+ """响应按键"""
+ if event.key == pygame.K_RIGHT:
+ ship.moving_right = True
+ elif event.key == pygame.K_LEFT:
+ ship.moving_left = True
+ elif event.key == pygame.K_SPACE:
+ pygame.mixer.Sound('bgm/bullet.wav').play()
+ fire_bullet(ai_settings, screen, ship, bullets)
+
+def check_keyup_events(event,ship):
+ """松开响应"""
+ if event.key == pygame.K_RIGHT:
+ ship.moving_right = False
+ elif event.key == pygame.K_LEFT:
+ ship.moving_left = False
+
+def check_events(ai_settings, screen, stats, sb, play_button, ship, aliens, bullets):
+ """捕捉所有操作"""
+ for event in pygame.event.get():
+ if event.type == pygame.QUIT:
+ # 添加代码
+ start_ui.GameWelcomeScreen()
+ stats.save_high_score()
+ sys.exit()
+ elif event.type == pygame.KEYDOWN:
+ check_keydown_events(event, ai_settings, screen, ship, bullets)
+ elif event.type == pygame.KEYUP:
+ check_keyup_events(event, ship)
+ elif event.type == pygame.MOUSEBUTTONDOWN:
+ mouse_x, mouse_y = pygame.mouse.get_pos()
+ check_play_button(ai_settings, screen, stats, sb, play_button, ship, aliens, bullets, mouse_x, mouse_y)
+
+# 增加代码
+def text_objects(text, font):
+ textSurface = font.render(text, True, (0, 0, 0))
+ return textSurface, textSurface.get_rect()
+
+
+def message_display(text, ai_settings, screen, stats, sb, play_button):
+ largeText = pygame.font.Font('comicsansms', 115)
+ TextSurf, TextRect = text_objects(text, largeText)
+ TextRect.center = ((ai_settings.screen_width / 2), (ai_settings.screen_height / 2))
+ screen.blit(TextSurf, TextRect)
+ pygame.display.update()
+ time.sleep(3)
+
+
+#
+def check_play_button(ai_settings, screen, stats, sb, play_button, ship, aliens, bullets, mouse_x, mouse_y):
+ """在玩家单击Play按钮时开始新游戏"""
+ button_clicked = play_button.rect.collidepoint(mouse_x, mouse_y)
+ if button_clicked and not stats.game_active:
+ # 重置游戏设置
+ ai_settings.initialize_dynamic_settings()
+
+ # 隐藏光标
+ pygame.mouse.set_visible(False)
+ # 重置游戏统计信息
+ stats.reset_stats()
+ stats.game_active = True
+
+ # 重置记分牌图像
+ sb.prep_score()
+ sb.prep_high_score()
+ sb.prep_level()
+ sb.prep_ships()
+
+ # 清空外星人列表和子弹列表
+ aliens.empty()
+ bullets.empty()
+
+ # 创建一群新的外星人,并让飞船居中
+ create_fleet(ai_settings, screen, ship, aliens)
+ ship.center_ship()
+
+def check_bullet_alien_collisions(ai_settings, screen, stats, sb, ship, aliens, bullets):
+ """响应子弹和外星人的碰撞"""
+ # 删除发生碰撞的子弹和外星人
+ collisions = pygame.sprite.groupcollide(bullets, aliens, True, True)
+ if collisions:
+ for aliens in collisions.values():
+ stats.score += ai_settings.alien_points * len(aliens)
+ sb.prep_score()
+ check_high_score(stats, sb)
+ if len(aliens) == 0:
+ # 删除现有子弹, 加快游戏节奏,并新建一群外星人
+ bullets.empty()
+ ai_settings.increase_speed()
+
+ # 提高等级
+ stats.level += 1
+ sb.prep_level()
+
+ create_fleet(ai_settings, screen, ship, aliens)
+
+def check_fleet_edges(ai_settings, aliens):
+ """有外星人到达边缘时采取相应的措施"""
+ for alien in aliens.sprites():
+ if alien.check_edges():
+ change_fleet_direction(ai_settings, aliens)
+ break
+
+def check_aliens_bottom(ai_settings, screen, stats, sb, ship, aliens, bullets):
+ """检查是否有外星人到达了屏幕底部"""
+ screen_rect = screen.get_rect()
+ for alien in aliens.sprites():
+ if alien.rect.bottom >= screen_rect.bottom:
+ # 像飞船被撞到一样进行处理
+ ship_hit(ai_settings, screen, stats, sb, ship, aliens, bullets)
+ break
+
+def check_high_score(stats, sb):
+ """检查是否诞生了新的最高得分"""
+ if stats.score > stats.high_score:
+ stats.high_score = stats.score
+ sb.prep_high_score()
+
+def fire_bullet(ai_settings, screen, ship, bullets):
+ """如果还没有达到限制,就发射一颗子弹"""
+ # 创建一颗子弹,并将其加入到编组bullets中
+ if len(bullets) < ai_settings.bullets_allowed:
+ new_bullet = Bullet(ai_settings, screen, ship)
+ new_bullet.sound.play()
+ bullets.add(new_bullet)
+
+def get_number_aliens_x(ai_settings, alien_width):
+ """计算每行可容纳多少外星人"""
+ available_space_x = ai_settings.screen_width - 1 * alien_width
+ number_aliens_x = int(available_space_x / (2 * alien_width))
+ return number_aliens_x
+
+def get_number_rows(ai_settings, ship_height, alien_height):
+ """计算屏幕可容纳多少行外星人"""
+ available_space_y = (ai_settings.screen_height - (1 * alien_height) - ship_height)
+ number_rows = int(available_space_y / (2 * alien_height))
+ return number_rows
+
+def create_alien(ai_settings, screen, aliens, alien_number, row_number):
+ # 创建一个外星人并将其加入当前行
+ alien = Alien(ai_settings, screen)
+ alien_width = alien.rect.width
+ alien.x = alien_width + 2 * alien_width * alien_number
+ alien.rect.x = alien.x
+ alien.rect.y += alien.rect.height * row_number
+ aliens.add(alien)
+
+def create_fleet(ai_settings, screen, ship, aliens):
+ """创建外星人群"""
+ # 创建一个外星人,并计算一行可容纳多少个外星人
+ # 外星人间距为外星人宽度
+ alien = Alien(ai_settings, screen)
+ number_alien_x = get_number_aliens_x(ai_settings, alien.rect.width)
+ number_rows = get_number_rows(ai_settings, ship.rect.height, alien.rect.height)
+
+ # 创建外星人群
+ for row_number in range(number_rows):
+ for alien_number in range(number_alien_x):
+ create_alien(ai_settings, screen, aliens, alien_number, row_number)
+
+
+def change_fleet_direction(ai_settings, aliens):
+ """将整群外星人下移,并改变它们的方向"""
+ for alien in aliens.sprites():
+ alien.rect.y += ai_settings.fleet_drop_speed
+ ai_settings.fleet_direction *= -1
+
+def ship_hit(ai_settings, screen, stats, sb, ship, aliens, bullets):
+ """响应被外星人撞到的飞船"""
+ if stats.ships_left > 0:
+ # 将ship_left减1
+ stats.ships_left -= 1
+ # 更新记分牌
+ sb.prep_ships()
+ # 清空外星人列表和子弹列表
+ aliens.empty()
+ bullets.empty()
+ # 创建一群新的外星人,并将飞船放到屏幕底端中央
+ create_fleet(ai_settings, screen, ship, aliens)
+ ship.center_ship()
+ # 暂停
+ sleep(0.5)
+ else:
+ stats.game_active = False
+ pygame.mouse.set_visible(True)
+
+def update_aliens(ai_settings, screen, stats, sb, ship, aliens, bullets):
+ """
+ 检查是否有外星人位于屏幕边缘,并更新整群外星人的位置
+ """
+ check_fleet_edges(ai_settings, aliens)
+ aliens.update()
+
+ # 检查外星人和飞船之间的碰撞
+ if pygame.sprite.spritecollideany(ship, aliens):
+ ship_hit(ai_settings, screen, stats, sb, ship, aliens, bullets)
+
+ # 检查是否有外星人到达屏幕底端
+ check_aliens_bottom(ai_settings, screen, stats, sb, ship, aliens, bullets)
+
+def update_screen(ai_settings,screen, stats, sb, ship, aliens, bullets, play_button):
+ """更新屏幕上的图像,并切换到新屏幕"""
+ # 每次循环时都重绘屏幕
+ screen.fill(ai_settings.bg_color)
+ # 在飞船和外星人后面重绘所有子弹
+ for bullet in bullets.sprites():
+ bullet.draw_bullet()
+ ship.blitme()
+ aliens.draw(screen)
+ # 显示得分
+ sb.show_score()
+ # 如果游戏处于非活动状态,就绘制Play按钮
+ if not stats.game_active:
+ play_button.draw_button()
+ #continue_buton.draw_button()
+
+ # 让最近绘制的屏幕可见
+ pygame.display.flip()
+
+def update_bullets(ai_settings, screen, stats, sb, ship, aliens, bullets):
+ """根据子弹的位置,并删除已消失的子弹"""
+ # 更新子弹的位置
+ bullets.update()
+ # 删除已消失的子弹
+ for bullet in bullets.copy():
+ if bullet.rect.bottom <= 0:
+ bullets.remove(bullet)
+
+ check_bullet_alien_collisions(ai_settings, screen, stats, sb, ship, aliens, bullets)
diff --git a/game_stats.py b/game_stats.py
new file mode 100644
index 0000000..7dee3d9
--- /dev/null
+++ b/game_stats.py
@@ -0,0 +1,32 @@
+# 开发日期: 2024/4/26
+import pickle
+class GameStats():
+ """跟踪游戏的统计信息"""
+
+ def __init__(self, ai_settings):
+ """初始化统计信息"""
+ self.ai_settings = ai_settings
+ self.reset_stats()
+ # 游戏刚启动的时候处于活动状态
+ self.game_active = False
+ # 在任何情况下都不应该重置最高分
+ self.high_score = 0
+
+ def reset_stats(self):
+ """初始化在游戏运行期间可能变化的统计信息"""
+ self.ships_left = self.ai_settings.ship_limit
+ self.score = 0
+ self.level = 1
+ def save_high_score(self):
+ f = open("high_score.pk1", 'wb')
+ pickle.dump(str(self.high_score), f, 0)
+ f.close()
+ def load_high_score(self):
+ f = open("high_score.pk1", 'rb')
+ try:
+ str_high_score = pickle.load(f)
+ self.high_score = int(str_high_score)
+ except EOFError:
+ self.high_score = 0
+ finally:
+ f.close()
diff --git a/high_score.pk1 b/high_score.pk1
new file mode 100644
index 0000000..4382d84
--- /dev/null
+++ b/high_score.pk1
@@ -0,0 +1,3 @@
+V240
+p0
+.
\ No newline at end of file
diff --git a/images/Anime Girl DJ.jpg b/images/Anime Girl DJ.jpg
new file mode 100644
index 0000000..ae97a54
Binary files /dev/null and b/images/Anime Girl DJ.jpg differ
diff --git a/images/al.png b/images/al.png
new file mode 100644
index 0000000..14b0704
Binary files /dev/null and b/images/al.png differ
diff --git a/images/bg.jpg b/images/bg.jpg
new file mode 100644
index 0000000..058678f
Binary files /dev/null and b/images/bg.jpg differ
diff --git a/images/bullet.png b/images/bullet.png
new file mode 100644
index 0000000..6e3e07f
Binary files /dev/null and b/images/bullet.png differ
diff --git a/images/explosion.png b/images/explosion.png
new file mode 100644
index 0000000..ffc82de
Binary files /dev/null and b/images/explosion.png differ
diff --git a/images/ship.png b/images/ship.png
new file mode 100644
index 0000000..aeee457
Binary files /dev/null and b/images/ship.png differ
diff --git a/scoreboard.py b/scoreboard.py
new file mode 100644
index 0000000..326c218
--- /dev/null
+++ b/scoreboard.py
@@ -0,0 +1,72 @@
+import pygame.font
+from pygame.sprite import Group
+from ship import Ship
+
+class Scoreboard():
+ """显示得分信息类"""
+
+ def __init__(self, ai_settings, screen, stats):
+ """初始化得分涉及的属性"""
+ pygame.init()
+ self.screen = screen
+ self.screen_rect = screen.get_rect()
+ self.ai_settings = ai_settings
+ self.stats = stats
+
+ # 显示得分信息使用的字体设置
+ self.text_color = (30, 30, 30)
+ # self.font = pygame.font.SysFont(None, 48)
+ self.font = pygame.font.SysFont("arial", 48)
+
+ # 准备包含最高得分和当前得分、当前等级的图像
+ self.prep_score()
+ self.prep_high_score()
+ self.prep_level()
+ self.prep_ships()
+
+ def prep_score(self):
+ """将得分转换为一种渲染的图像"""
+ rounded_score = int(round(self.stats.score, -1))
+ score_str = "{:,}".format(rounded_score)
+ self.score_image = self.font.render(score_str, True, self.text_color, self.ai_settings.bg_color)
+ #将得分放在屏幕右下角
+ self.score_rect = self.score_image.get_rect()
+ self.score_rect.right = self.screen_rect.right - 20
+ self.score_rect.top = 20
+
+ def prep_high_score(self):
+ """将最高得分转换为渲染图像"""
+ high_score = int(round(self.stats.high_score, -1))
+ high_score_str = "{:,}".format(high_score)
+ self.high_score_image = self.font.render(high_score_str, True, self.text_color, self.ai_settings.bg_color)
+
+ # 将最高得分放在屏幕中央
+ self.high_score_rect = self.high_score_image.get_rect()
+ self.high_score_rect.centerx = self.screen_rect.centerx
+ self.high_score_rect.top = self.score_rect.top
+
+ def prep_level(self):
+ """将等级转换成渲染的图像"""
+ self.level_image = self.font.render(str(self.stats.level), True, self.text_color, self.ai_settings.bg_color)
+
+ # 将等级放在得分下方
+ self.level_rect = self.level_image.get_rect()
+ self.level_rect.right = self.score_rect.right
+ self.level_rect.top = self.score_rect.bottom + 10
+
+ def prep_ships(self):
+ """显示还余下多少艘飞船"""
+ self.ships = Group()
+ for ship_number in range(self.stats.ships_left):
+ ship = Ship(self.ai_settings, self.screen)
+ ship.rect.x = 10 + ship_number * ship.rect.width
+ ship.rect.y = 10
+ self.ships.add(ship)
+
+ def show_score(self):
+ """在屏幕上显示飞船和得分"""
+ self.screen.blit(self.score_image, self.score_rect)
+ self.screen.blit(self.high_score_image, self.high_score_rect)
+ self.screen.blit(self.level_image, self.level_rect)
+ # 绘制飞船
+ self.ships.draw(self.screen)
diff --git a/settings.py b/settings.py
new file mode 100644
index 0000000..63346f7
--- /dev/null
+++ b/settings.py
@@ -0,0 +1,49 @@
+# 开发日期: 2024/4/26
+import pygame
+
+
+class Settings():
+ """储存《外星人入侵》的所有设置的类"""
+ def __init__(self):
+ """初始化游戏的设置"""
+
+ # 屏幕设置
+ self.screen_width = 1400
+ self.screen_height = 800
+ self.bg_color = (0, 128, 128)
+ # 飞船的设置
+ self.ship_limit = 2
+
+ # 子弹设置
+ self.bullets_allowed = 5
+ self.bullet_speed_factor = 2
+
+ # 外星人设置
+ self.fleet_drop_speed = 10
+
+ # 以什么样的速度加快游戏节奏
+ self.speedup_scale = 1.1
+ # 外星人点数的提高速度
+ self.score_scale = 1.5
+
+ self.initialize_dynamic_settings()
+
+ def initialize_dynamic_settings(self):
+ """初始化随游戏进行而变化的设置"""
+ self.ship_speed_factor = 1.5
+ self.bullet_speed_factor = 3
+ self.alien_speed_factor = 1
+
+ # fleet_direction为1表示向右移动,为-1表示向左移动
+ self.fleet_direction = 1
+
+ self.alien_points = 30
+
+ def increase_speed(self):
+ """提高速度设置和外星人点数"""
+ # 通过增加速度因子和分数的比例因子来提高游戏中飞船、子弹和外星人的速度,以及击落外星人时获得的分数
+ self.ship_speed_factor *= self.speedup_scale
+ self.bullet_speed_factor *= self.speedup_scale
+ self.alien_speed_factor *= self.speedup_scale
+
+ self.alien_points = int(self.alien_points * self.score_scale)
diff --git a/ship.py b/ship.py
new file mode 100644
index 0000000..2fda629
--- /dev/null
+++ b/ship.py
@@ -0,0 +1,42 @@
+import pygame
+from pygame.sprite import Sprite
+
+class Ship(Sprite):
+ def __init__(self, ai_settings, screen):
+ """初始化飞船并设置其初始位置"""
+ super(Ship, self).__init__()
+ self.screen = screen
+ self.ai_settings = ai_settings
+
+ # 加载飞船图像并获取其外接矩形
+ self.image = pygame.image.load('images/ship.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
+
+ # 在飞船的属性center中存储最小值
+ self.center = float(self.rect.centerx)
+ # 移动标志
+ self.moving_right = False
+ self.moving_left = False
+
+ def update(self):
+ """根据移动标志调整飞船的位置"""
+ if self.moving_right and self.rect.right < self.screen_rect.right:
+ self.center += self.ai_settings.ship_speed_factor
+ if self.moving_left and self.rect.left > 0:
+ self.center -= self.ai_settings.ship_speed_factor
+
+ # 根据self.center更新rect.center
+ self.rect.centerx = self.center
+
+ def center_ship(self):
+ """让飞船在屏幕居中"""
+ self.center = self.screen_rect.centerx
+
+ def blitme(self):
+ """"在指定位置绘制飞船"""
+ self.screen.blit(self.image, self.rect)
diff --git a/start_ui.py b/start_ui.py
new file mode 100644
index 0000000..e8e6ec0
--- /dev/null
+++ b/start_ui.py
@@ -0,0 +1,52 @@
+import tkinter as tk
+import alien_invasion
+from PIL import Image, ImageTk
+class GameWelcomeScreen(tk.Tk):
+
+ def __init__(self):
+ super().__init__()
+ self.title("欢迎界面")
+ self.geometry("1300x750") # 设置窗口大小
+ # 添加标签和按钮
+ self.welcome_label = tk.Label(self, text="WELCOM TO \nThe Alien Invasion!", font=("comicsansms", 50), foreground="lightblue")
+ self.welcome_label.pack(pady=50) # 使用pack布局管理器
+ self.start_button = tk.Button(self, text="进入游戏", font=("comicsansms", 20), command=self.start_button, background="lightblue")
+ self.start_button.pack(pady=20)
+
+ self.quit_button = tk.Button(self, text="退出游戏", font=("comicsansms", 20), command=self.quit, background="lightgreen")
+ self.quit_button.pack(pady=20)
+ self.about_button = tk.Button(self, text="关于游戏", font=("comicsansms", 20), command=self.about_button, background="lightyellow")
+ self.about_button.pack(pady=20)
+ self.mainloop()
+
+ def set_image_as_background(self, image_path):
+ img = Image.open(image_path)
+ img = img.resize((self.root.winfo_reqwidth(), self.root.winfo_reqheight()), Image.Resampling.LANCZOS)
+ photo = ImageTk.PhotoImage(img)
+ self.canvas = tk.Canvas(self.root, width=self.root.winfo_reqwidth(), height=self.root.winfo_reqheight())
+ self.canvas.pack(fill="both", expand=True)
+ # 在Canvas上放置图片
+ self.canvas.create_image(0, 0, image=photo, anchor="nw")
+ self.canvas.image = photo
+ def start_button(self):
+ print("开始游戏")
+ alien_invasion.run_game()
+
+ def about_button(self):
+ print("本游戏是外星人入侵游戏")
+ root = tk.Tk() # 建立第二个窗口
+ root.title("关于游戏")
+ root.geometry("400x300")
+ tk.Label(root, text="这是一款使用Pygame包来开发的2D游戏。"
+ "\n它在玩家每消灭一群向下移动的外星人后,将玩家提高一个等级。\n每射杀一个外星人获得的相应的分数,等级越高,"
+ "\n游戏的节奏越快,难度越大,击杀每个外星人获得的分数就越高。\n"
+ "玩家的任务就是击落每个从屏幕上方移动下来的外星人,\n当外星人碰到飞船或者屏幕底部时该飞船被摧毁,\n"
+ "每个玩家可拥有三艘飞船,当三艘飞船都被摧毁时结束游戏\n得出最高分。\n\n\n"
+ "游戏使用:左右键移动飞船,空格键发射子弹",
+ font=("comicsansms", 10), foreground='black').pack(pady=20)
+ root.mainloop()
+
+
+if __name__ == "__main__":
+ app = GameWelcomeScreen()
+ app.mainloop()
\ No newline at end of file
diff --git a/tip.py b/tip.py
new file mode 100644
index 0000000..56deb96
--- /dev/null
+++ b/tip.py
@@ -0,0 +1,59 @@
+python
+复制代码
+import tkinter as tk
+
+from PIL import Image, ImageTk
+
+
+class TkinterBackground:
+
+ def __init__(self, root, image_path):
+ self.root = root
+
+ self.set_image_as_background(image_path)
+
+ def set_image_as_background(self, image_path):
+ # 加载图片
+
+ img = Image.open(image_path)
+
+ # 确保图片与窗口大小匹配,或者你可以调整图片大小
+
+ img = img.resize((self.root.winfo_reqwidth(), self.root.winfo_reqheight()), Image.Resampling.LANCZOS)
+
+ # 使用PIL的ImageTk将PIL Image转换为Tkinter的PhotoImage
+
+ photo = ImageTk.PhotoImage(img)
+
+ # 创建一个Canvas来放置图片
+
+ self.canvas = tk.Canvas(self.root, width=self.root.winfo_reqwidth(), height=self.root.winfo_reqheight())
+
+ self.canvas.pack(fill="both", expand=True)
+
+ # 在Canvas上放置图片
+
+ self.canvas.create_image(0, 0, image=photo, anchor="nw")
+
+ # 保持对PhotoImage的引用,否则它会被Python的垃圾回收机制回收
+
+ self.canvas.image = photo
+
+ # 使用示例
+
+
+root = tk.Tk()
+
+root.title("Image Background")
+
+# 设置窗口大小(可选,你可以根据需要设置)
+
+root.geometry("400x300")
+
+# 创建一个TkinterBackground的实例,并设置图片背景
+
+background = TkinterBackground(root, "path_to_your_image.jpg") # 替换为你的图片路径
+
+# 运行Tkinter事件循环
+
+root.mainloop()
\ No newline at end of file