diff --git a/assets/icon.ico b/assets/icon.ico new file mode 100644 index 0000000..fd24336 Binary files /dev/null and b/assets/icon.ico differ diff --git a/assets/icon.png b/assets/icon.png new file mode 100644 index 0000000..60d98ae Binary files /dev/null and b/assets/icon.png differ diff --git a/src/front/app.py b/src/front/app.py index 69325b3..5db4717 100644 --- a/src/front/app.py +++ b/src/front/app.py @@ -1,4 +1,5 @@ import asyncio +import os import random from typing import Dict, List, Optional @@ -57,6 +58,12 @@ class Front: height_px = self.world.map.height * tile_size + margin * 2 + STATUS_BAR_HEIGHT self.screen = pygame.display.set_mode((width_px, height_px)) pygame.display.set_caption(window_title) + + # 设置窗口图标 + icon_path = "assets/icon.png" + if os.path.exists(icon_path): + icon = pygame.image.load(icon_path) + pygame.display.set_icon(icon) self.font = create_font(self.pygame, 16, self.font_path) self.tooltip_font = create_font(self.pygame, 14, self.font_path) diff --git a/tools/package/pack.ps1 b/tools/package/pack.ps1 index a0aa291..794bfc0 100644 --- a/tools/package/pack.ps1 +++ b/tools/package/pack.ps1 @@ -40,6 +40,9 @@ if (-not (Test-Path $EntryPy)) { $AssetsPath = Join-Path $RepoRoot "assets" $StaticPath = Join-Path $RepoRoot "static" +# Icon path +$IconPath = Join-Path $AssetsPath "icon.ico" + # Runtime hook $RuntimeHookPath = Join-Path $ScriptDir "runtime_hook_setcwd.py" @@ -76,6 +79,11 @@ if (Test-Path $RuntimeHookPath) { $argsList += @("--runtime-hook", $RuntimeHookPath) } +# Add icon if available +if (Test-Path $IconPath) { + $argsList += @("--icon", $IconPath) +} + # Call PyInstaller Push-Location $RepoRoot try {