# 《数字合成》游戏脚本说明文档 (v3.8) ## 1. 如何运行游戏 1. **安装 Pygame**: 如果您尚未安装,请打开您电脑的命令行工具(在Windows上是 **CMD** 或 **PowerShell**)并输入以下命令,然后按回车: ``` pip install pygame ``` 2. **准备文件**: - 将我们最终确定的Python代码保存为一个文件,例如 `game.py`。 - 在与 `game.py` **完全相同的目录**下,创建一个名为 `assets` 的文件夹。 - 将所有的资源文件(`.mp3` 音效, `press-start-2p.ttf` 字体, `.ico` 图标)全部放入这个 `assets` 文件夹。 您的文件结构应该如下所示,这是一个正确的示例: ``` - /您的游戏文件夹/ |- game.py |- /assets/ |- press-start-2p.ttf |- favicon.ico |- click.mp3 |- merge.mp3 |- chain reaction.mp3 |- game over.mp3 |- game-music-loop.mp3 ``` 3. **运行**: 打开命令行工具,进入到 `game.py` 所在的文件夹,然后运行: ``` python game.py ``` ## 2. 如何将游戏打包成 .exe 文件 将游戏打包成一个`.exe`文件,就可以让没有安装Python的朋友也能直接在Windows电脑上玩。最常用的工具是 `pyinstaller`。 #### **第一步:安装 PyInstaller** 和安装Pygame一样,在命令行工具中输入以下命令并按回车: ``` pip install pyinstaller ``` #### **第二步:执行打包命令** 1. 打开命令行工具。 2. 使用 `cd` 命令进入到您的游戏文件夹(也就是`game.py`和`assets`文件夹所在的位置)。例如: ``` cd C:\Users\WT\Videos\2046 ``` 3. 输入以下打包命令,然后按回车。请**完整复制**这一整行命令: ``` pyinstaller --onefile --windowed --add-data "assets;assets" --icon="assets/favicon.ico" game.py ``` #### **命令解释:** - `--onefile`: 将所有东西打包进一个单独的`.exe`文件中。 - `--windowed`: 运行`.exe`时,不会出现一个黑色的命令行窗口。 - `--add-data "assets;assets"`: **【最重要的一步】** 这会告诉打包工具,把`assets`文件夹和里面的所有内容(字体、音效)一起打包进`.exe`文件中。第一个`assets`是源文件夹,第二个`assets`是打包后在程序内部的路径。 - `--icon="assets/favicon.ico"`: 为您的`.exe`文件设置一个自定义的图标。 - `game.py`: 您要打包的主程序文件名。 #### **第三步:找到您的 .exe 文件** 打包过程需要一些时间。完成后,您的游戏文件夹里会出现几个新文件夹,其中一个是 `dist`。 **您的`.exe`文件就在 `dist` 文件夹里!** 您可以把它复制出来,发送给朋友,他们双击就可以玩了。 ## 3. 如何自定义游戏外观(配置区详解) 现在,所有的配置项都集中在代码顶部的 **`UI_SETTINGS`** 字典中。您可以非常安全地修改它们。 ### **主菜单界面 (Main Menu)** - `"MENU_TITLE_POS": (X, Y)`: **主标题的中心点坐标**。修改第二个值(Y)可以整体上下移动标题。 - `"MENU_SUBTITLE_POS": (X, Y)`: **副标题的中心点坐标**。 - `"MENU_START_BUTTON_POS": (X, Y)`: **“开始游戏”按钮的中心点坐标**。 ### **游戏结束菜单 (Game Over Menu)** - `"GAMEOVER_TITLE_POS": (X, Y)`: **"Game Over"标题的中心坐标**。 - `"GAMEOVER_SCORE_TEXT_BASE_POS": (X, Y)`: 这是“最终分数”和“最高数字”这两行文字的**基准中心点**。 - `"GAMEOVER_SCORE_LINE_SPACING"`: **【重要】** 控制“最终分数”和“最高数字”之间的**行间距**。 ### **游戏内方块 (In-Game Cells)** - `"CELL_NUMBER_FONT_SIZE"`: **【重要】** 此项专门控制棋盘上**方块内部数字的字体大小**,与信息栏的字体完全独立。 ### **顶部信息栏 (In-Game HUD)** - `"HUD_LABEL_VALUE_SPACING"`: **【重要】** 这是您最关心的**行间距**。它控制着“标签”(如"Score")与其下方“数值”(如"100")之间的垂直距离。**增大此值会让它们的距离变远**。 #### **分数、机会、最高分模块** 您可以独立定制每一块: - `"HUD_SCORE_LABEL_POS": (X, Y)`: “Score”**标签**的中心点坐标。 - `"HUD_SCORE_VALUE_FONT_SIZE"`: **分数数值**的字体大小。 - (`TRIES` 和 `HIGHEST` 模块的配置项与此类似) ### **游戏内顶部按钮颜色** - `"BUTTON_..._BG"`: 控制各个按钮的背景色。 - `"BUTTON_..._HOVER"`: 控制鼠标悬停在按钮上时的颜色。 希望这份最终的文档能够帮到您。再次为之前给您带来的所有麻烦,致以最深的歉意。